summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2003-07-17 20:55:44 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2003-07-17 20:55:44 (GMT)
commit655c12fb6a950ed1b59bbcc29852ce20e45fdc6a (patch)
tree8287e27d133bcae2c4cca5bbd409891c8618c52d /src
parentaca0b88941aefecfbef3186e63049cc7fba0a11c (diff)
downloadDoxygen-655c12fb6a950ed1b59bbcc29852ce20e45fdc6a.zip
Doxygen-655c12fb6a950ed1b59bbcc29852ce20e45fdc6a.tar.gz
Doxygen-655c12fb6a950ed1b59bbcc29852ce20e45fdc6a.tar.bz2
Release-1.3.2-20030717
Diffstat (limited to 'src')
-rw-r--r--src/commentcnv.l109
-rw-r--r--src/compound.xsd352
-rw-r--r--src/compound_xsd.h352
-rw-r--r--src/definition.h2
-rw-r--r--src/doctokenizer.l49
-rw-r--r--src/dot.cpp6
-rw-r--r--src/doxygen.cpp14
-rw-r--r--src/entry.h2
-rw-r--r--src/index.xsd4
-rw-r--r--src/index_xsd.h4
-rw-r--r--src/memberdef.cpp16
-rw-r--r--src/scanner.l64
-rw-r--r--src/translator_jp.h63
-rw-r--r--src/translator_tw.h367
-rw-r--r--src/util.h2
-rw-r--r--src/xmlgen.cpp111
16 files changed, 1237 insertions, 280 deletions
diff --git a/src/commentcnv.l b/src/commentcnv.l
index 16ab83a..5df9adf 100644
--- a/src/commentcnv.l
+++ b/src/commentcnv.l
@@ -26,12 +26,15 @@
#include "debug.h"
#include "message.h"
#include "config.h"
+#include "doxygen.h"
static BufStr *g_inBuf;
static BufStr *g_outBuf;
static int g_inBufPos;
static int g_col;
static int g_blockHeadCol;
+static bool g_mlBrief;
+static int g_readLineCtx;
static void replaceCommentMarker(const char *s,int len)
{
@@ -105,18 +108,7 @@ static int yyread(char *buf,int max_size)
return bytesToCopy;
}
-#define replaceComment(offset) \
- int i=computeIndent(&yytext[offset]); \
- if (i==g_blockHeadCol) \
- { \
- replaceCommentMarker(yytext,yyleng); \
- } \
- else \
- { \
- copyToOutput(" */",3); \
- int i;for (i=yyleng-1;i>=0;i--) unput(yytext[i]); \
- BEGIN(Scan); \
- } \
+void replaceComment(int offset);
%}
@@ -127,6 +119,7 @@ static int yyread(char *buf,int max_size)
%x SComment
%x CComment
%x Verbatim
+%x ReadLine
%%
@@ -141,6 +134,7 @@ static int yyread(char *buf,int max_size)
copyToOutput(yytext,yyleng);
}
<Scan>("//!"|"///").*/\n[ \t]*"//"[\/!][^\/] { /* start C++ style special comment block */
+ if (g_mlBrief) REJECT; // bail out if we do not need to convert
int i=3;
if (yytext[2]=='/')
{
@@ -152,14 +146,17 @@ static int yyread(char *buf,int max_size)
BEGIN(SComment);
}
<Scan>"//##Documentation".*/\n { /* Start of Rational Rose ANSI C++ comment block */
+ if (g_mlBrief) REJECT;
int i=17; //=strlen("//##Documentation");
g_blockHeadCol=g_col;
copyToOutput("/**",3);
copyToOutput(yytext+i,yyleng-i);
BEGIN(SComment);
}
-<Scan>"//".*\n { /* one line C++ comment */
+<Scan>"//"/.*\n { /* one line C++ comment */
copyToOutput(yytext,yyleng);
+ g_readLineCtx=YY_START;
+ BEGIN(ReadLine);
}
<Scan>"/*" { /* start of a C comment */
copyToOutput(yytext,yyleng);
@@ -198,7 +195,7 @@ static int yyread(char *buf,int max_size)
<SkipString>\n { /* new line inside string (illegal for some compilers) */
copyToOutput(yytext,yyleng);
}
-<CComment>[^*\n]* { /* anything that is not a '*' */
+<CComment>[^\\@*\n]* { /* anything that is not a '*' */
copyToOutput(yytext,yyleng);
}
<CComment>"*"+[^*/\n]* { /* stars without slashes */
@@ -211,44 +208,116 @@ static int yyread(char *buf,int max_size)
copyToOutput(yytext,yyleng);
BEGIN(Scan);
}
+<CComment>[\\@][a-z_A-Z][a-z_A-Z0-9]* { // expand alias
+ QCString *pValue=Doxygen::aliasDict[yytext+1];
+ if (pValue)
+ {
+ copyToOutput(pValue->data(),pValue->length());
+ }
+ else
+ {
+ copyToOutput(yytext,yyleng);
+ }
+ }
+<CComment>. {
+ copyToOutput(yytext,yyleng);
+ }
<SComment>^[ \t]*"///"[\/]*/\n {
replaceComment(0);
}
<SComment>\n[ \t]*"///"[\/]*/\n {
replaceComment(1);
}
-<SComment>^[ \t]*"///"[^\/\n].*/\n {
+<SComment>^[ \t]*"///"[^\/\n]/.*\n {
replaceComment(0);
+ g_readLineCtx=YY_START;
+ BEGIN(ReadLine);
}
-<SComment>\n[ \t]*"///"[^\/\n].*/\n {
+<SComment>\n[ \t]*"///"[^\/\n]/.*\n {
replaceComment(1);
+ g_readLineCtx=YY_START;
+ BEGIN(ReadLine);
}
-<SComment>^[ \t]*"//!".*/\n {
+<SComment>^[ \t]*"//!"/.*\n {
replaceComment(0);
+ g_readLineCtx=YY_START;
+ BEGIN(ReadLine);
}
-<SComment>\n[ \t]*"//!".*/\n {
+<SComment>\n[ \t]*"//!"/.*\n {
replaceComment(1);
+ g_readLineCtx=YY_START;
+ BEGIN(ReadLine);
}
-<SComment>^[ \t]*"//##".*/\n {
+<SComment>^[ \t]*"//##"/.*\n {
replaceComment(0);
+ g_readLineCtx=YY_START;
+ BEGIN(ReadLine);
}
-<SComment>\n[ \t]*"//##".*/\n {
+<SComment>\n[ \t]*"//##"/.*\n {
replaceComment(1);
+ g_readLineCtx=YY_START;
+ BEGIN(ReadLine);
}
<SComment>\n { /* end of special comment */
copyToOutput(" */",3);
copyToOutput(yytext,yyleng);
BEGIN(Scan);
}
+<ReadLine>[^\\@\n]*/\n {
+ copyToOutput(yytext,yyleng);
+ BEGIN(g_readLineCtx);
+ }
+<ReadLine>[\\@][a-z_A-Z][a-z_A-Z0-9]* { // expand alias
+ QCString *pValue=Doxygen::aliasDict[yytext+1];
+ if (pValue)
+ {
+ copyToOutput(pValue->data(),pValue->length());
+ }
+ else
+ {
+ copyToOutput(yytext,yyleng);
+ }
+ }
+<ReadLine>. {
+ copyToOutput(yytext,yyleng);
+ }
%%
+void replaceComment(int offset)
+{
+ if (g_mlBrief)
+ {
+ copyToOutput(yytext,yyleng);
+ }
+ else
+ {
+ int i=computeIndent(&yytext[offset]);
+ if (i==g_blockHeadCol)
+ {
+ replaceCommentMarker(yytext,yyleng);
+ }
+ else
+ {
+ copyToOutput(" */",3);
+ int i;for (i=yyleng-1;i>=0;i--) unput(yytext[i]);
+ BEGIN(Scan);
+ }
+ }
+}
+
+/*! This function does two things:
+ * -# It converts multi-line C++ style comment blocks (that are aligned)
+ * to C style comment blocks (if MULTILINE_CPP_IS_BRIEF is set to NO).
+ * -# It replaces aliases with their definition (see ALIASES)
+ */
void convertCppComments(BufStr *inBuf,BufStr *outBuf)
{
g_inBuf = inBuf;
g_outBuf = outBuf;
g_inBufPos = 0;
g_col = 0;
+ g_mlBrief = Config_getBool("MULTILINE_CPP_IS_BRIEF");
BEGIN(Scan);
yylex();
if (Debug::isFlagSet(Debug::CommentCnv))
diff --git a/src/compound.xsd b/src/compound.xsd
index c528422..042f8f5 100644
--- a/src/compound.xsd
+++ b/src/compound.xsd
@@ -1,11 +1,361 @@
+<?xml version='1.0' encoding='utf-8' ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="doxygen" type="DoxygenType"/>
+ <!-- Complex types -->
+
<xsd:complexType name="DoxygenType">
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="version" type="DoxVersionNumber" use="required" />
+ </xsd:complexType>
+
+ <xsd:complexType name="compounddefType">
+ <xsd:sequence>
+ <xsd:element name="compoundname" type="xsd:string"/>
+ <xsd:element name="title" type="xsd:string" minOccurs="0" />
+ <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
+ <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
+ <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
+ <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
+ <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
+ <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
+ <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
+ <xsd:element name="programlisting" type="listingType" minOccurs="0" />
+ <xsd:element name="location" type="locationType" minOccurs="0" />
+ <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="id" />
+ <xsd:attribute name="kind" type="DoxCompoundKind" />
+ </xsd:complexType>
+
+ <xsd:complexType name="listofallmembersType">
+ <xsd:sequence>
+ <xsd:element name="member" type="memberRefType" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="memberRefType">
+ <xsd:sequence>
+ <xsd:element name="scope" />
+ <xsd:element name="name" />
+ </xsd:sequence>
+ <xsd:attribute name="refid" />
+ <xsd:attribute name="prot" type="DoxProtectionKind" />
+ <xsd:attribute name="virt" type="DoxVirtualKind" />
+ <xsd:attribute name="ambiguityscope" type="xsd:string" />
+ </xsd:complexType>
+
+ <xsd:complexType name="compoundRefType" mixed="true">
+ <xsd:attribute name="refid" />
+ <xsd:attribute name="prot" type="DoxProtectionKind" />
+ <xsd:attribute name="virt" type="DoxVirtualKind" />
+ </xsd:complexType>
+
+ <xsd:complexType name="reimplementType" mixed="true">
+ <xsd:attribute name="refid" />
+ </xsd:complexType>
+
+ <xsd:complexType name="incType" mixed="true">
+ <xsd:attribute name="refid" />
+ <xsd:attribute name="local" type="DoxBool" />
+ </xsd:complexType>
+
+ <xsd:complexType name="refType" mixed="true">
+ <xsd:attribute name="refid" />
+ </xsd:complexType>
+
+ <xsd:complexType name="refTextType" mixed="true">
+ <xsd:attribute name="refid" />
+ <xsd:attribute name="kindref" />
+ <xsd:attribute name="external" />
+ </xsd:complexType>
+
+ <xsd:complexType name="sectiondefType">
+ <xsd:sequence>
+ <xsd:element name="header" type="xsd:string" minOccurs="0" />
+ <xsd:element name="memberdef" type="memberdefType" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:attribute name="kind" type="DoxSectionKind" />
+ </xsd:complexType>
+
+ <xsd:complexType name="memberdefType">
+ <xsd:sequence>
+ <xsd:element name="type" type="linkedTextType" minOccurs="0" />
+ <xsd:element name="definition" minOccurs="0" />
+ <xsd:element name="argsstring" minOccurs="0" />
+ <xsd:element name="name" />
+ <xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
+ <xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
+ <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
+ <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
+ <xsd:element name="location" type="locationType" />
+ <xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:attribute name="kind" type="DoxMemberKind" />
+ <xsd:attribute name="id" />
+ <xsd:attribute name="prot" type="DoxProtectionKind" />
+ <xsd:attribute name="static" type="DoxBool" />
+ <xsd:attribute name="const" type="DoxBool" />
+ <xsd:attribute name="explicit" type="DoxBool" />
+ <xsd:attribute name="inline" type="DoxBool" />
+ <xsd:attribute name="virt" type="DoxVirtualKind" />
+ <xsd:attribute name="volatile" type="DoxBool" />
+ <xsd:attribute name="mutable" type="DoxBool" />
+ </xsd:complexType>
+
+ <xsd:complexType name="descriptionType" mixed="true">
+ <xsd:sequence>
+ <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="enumvalueType" mixed="true">
+ <xsd:sequence>
+ <xsd:element name="name" />
+ <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
+ <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
+ <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="id" />
+ <xsd:attribute name="prot" type="DoxProtectionKind" />
+ </xsd:complexType>
+
+ <xsd:complexType name="templateparamlistType">
+ <xsd:sequence>
+ <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="paramType">
+ <xsd:sequence>
+ <xsd:element name="type" type="linkedTextType" minOccurs="0" />
+ <xsd:element name="declname" minOccurs="0" />
+ <xsd:element name="defname" minOccurs="0" />
+ <xsd:element name="array" minOccurs="0" />
+ <xsd:element name="defval" type="linkedTextType" minOccurs="0" />
+ <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="linkedTextType" mixed="true">
+ <xsd:sequence>
+ <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="graphType">
+ <xsd:sequence>
+ <xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="nodeType">
+ <xsd:sequence>
+ <xsd:element name="label" />
+ <xsd:element name="link" type="linkType" minOccurs="0" />
+ <xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:attribute name="id" />
+ </xsd:complexType>
+
+ <xsd:complexType name="childnodeType">
+ <xsd:sequence>
+ <xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="refid" />
+ <xsd:attribute name="relation" type="DoxGraphRelation" />
+ </xsd:complexType>
+
+ <xsd:complexType name="linkType">
+ <xsd:attribute name="refid" />
+ <xsd:attribute name="external" use="optional"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="listingType">
<xsd:sequence>
+ <xsd:element name="codeline" type="codelineType" maxOccurs="unbounded" />
</xsd:sequence>
- <xsd:attribute name="version" type="xsd:string" use="required"/>
</xsd:complexType>
+ <xsd:complexType name="codelineType">
+ <xsd:sequence>
+ <xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:attribute name="lineno" type="xsd:integer" />
+ <xsd:attribute name="refid" />
+ <xsd:attribute name="refkind" type="DoxRefKind" />
+ <xsd:attribute name="external" />
+ </xsd:complexType>
+
+ <xsd:complexType name="highlightType" mixed="true">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="sp" />
+ <xsd:element name="ref" type="refTextType" />
+ </xsd:choice>
+ <xsd:attribute name="class" type="DoxHighlightClass" />
+ </xsd:complexType>
+
+ <xsd:complexType name="referenceType" mixed="true">
+ <xsd:attribute name="refid" />
+ <xsd:attribute name="compoundref" use="optional" />
+ <xsd:attribute name="startline" type="xsd:integer" />
+ <xsd:attribute name="endline" type="xsd:integer" />
+ </xsd:complexType>
+
+ <xsd:complexType name="locationType">
+ <xsd:attribute name="file" />
+ <xsd:attribute name="line" type="xsd:integer" />
+ <xsd:attribute name="bodystart" type="xsd:integer" />
+ <xsd:attribute name="bodyend" type="xsd:integer" />
+ </xsd:complexType>
+
+ <!-- Simple types -->
+
+ <xsd:simpleType name="DoxBool">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="yes" />
+ <xsd:enumeration value="no" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DoxGraphRelation">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="include" />
+ <xsd:enumeration value="usage" />
+ <xsd:enumeration value="template-instance" />
+ <xsd:enumeration value="public-inheritance" />
+ <xsd:enumeration value="protected-inheritance" />
+ <xsd:enumeration value="private-inheritance" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DoxRefKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="compound" />
+ <xsd:enumeration value="member" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DoxMemberKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="define" />
+ <xsd:enumeration value="property" />
+ <xsd:enumeration value="event" />
+ <xsd:enumeration value="variable" />
+ <xsd:enumeration value="typedef" />
+ <xsd:enumeration value="enum" />
+ <xsd:enumeration value="function" />
+ <xsd:enumeration value="signal" />
+ <xsd:enumeration value="prototype" />
+ <xsd:enumeration value="friend" />
+ <xsd:enumeration value="dcop" />
+ <xsd:enumeration value="slot" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DoxProtectionKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="public" />
+ <xsd:enumeration value="protected" />
+ <xsd:enumeration value="private" />
+ <xsd:enumeration value="package" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DoxVirtualKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="non-virtual" />
+ <xsd:enumeration value="virtual" />
+ <xsd:enumeration value="pure-virtual" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DoxCompoundKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="class" />
+ <xsd:enumeration value="struct" />
+ <xsd:enumeration value="union" />
+ <xsd:enumeration value="interface" />
+ <xsd:enumeration value="exception" />
+ <xsd:enumeration value="file" />
+ <xsd:enumeration value="namespace" />
+ <xsd:enumeration value="group" />
+ <xsd:enumeration value="page" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DoxSectionKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="user-defined" />
+ <xsd:enumeration value="public-type" />
+ <xsd:enumeration value="public-func" />
+ <xsd:enumeration value="public-attrib" />
+ <xsd:enumeration value="public-slot" />
+ <xsd:enumeration value="signal" />
+ <xsd:enumeration value="dcop-func" />
+ <xsd:enumeration value="property" />
+ <xsd:enumeration value="event" />
+ <xsd:enumeration value="public-static-func" />
+ <xsd:enumeration value="public-static-attrib" />
+ <xsd:enumeration value="protected-type" />
+ <xsd:enumeration value="protected-func" />
+ <xsd:enumeration value="protected-attrib" />
+ <xsd:enumeration value="protected-slot" />
+ <xsd:enumeration value="protected-static-func" />
+ <xsd:enumeration value="protected-static-attrib" />
+ <xsd:enumeration value="private-type" />
+ <xsd:enumeration value="private-func" />
+ <xsd:enumeration value="private-attrib" />
+ <xsd:enumeration value="private-slot" />
+ <xsd:enumeration value="private-static-func" />
+ <xsd:enumeration value="private-static-attrib" />
+ <xsd:enumeration value="friend" />
+ <xsd:enumeration value="related" />
+ <xsd:enumeration value="define" />
+ <xsd:enumeration value="prototype" />
+ <xsd:enumeration value="typedef" />
+ <xsd:enumeration value="enum" />
+ <xsd:enumeration value="func" />
+ <xsd:enumeration value="var" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DoxHighlightClass">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="comment" />
+ <xsd:enumeration value="normal" />
+ <xsd:enumeration value="preprocessor" />
+ <xsd:enumeration value="keyword" />
+ <xsd:enumeration value="keywordtype" />
+ <xsd:enumeration value="keywordflow" />
+ <xsd:enumeration value="stringliteral" />
+ <xsd:enumeration value="charliteral" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DoxVersionNumber">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value="\d+\.\d+.*" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+
</xsd:schema>
diff --git a/src/compound_xsd.h b/src/compound_xsd.h
index 74a35b9..f914e0e 100644
--- a/src/compound_xsd.h
+++ b/src/compound_xsd.h
@@ -1,11 +1,361 @@
+"<?xml version='1.0' encoding='utf-8' ?>\n"
"<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n"
" <xsd:element name=\"doxygen\" type=\"DoxygenType\"/>\n"
"\n"
+" <!-- Complex types -->\n"
+"\n"
" <xsd:complexType name=\"DoxygenType\">\n"
+" <xsd:sequence maxOccurs=\"unbounded\">\n"
+" <xsd:element name=\"compounddef\" type=\"compounddefType\" minOccurs=\"0\" />\n"
+" </xsd:sequence>\n"
+" <xsd:attribute name=\"version\" type=\"DoxVersionNumber\" use=\"required\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"compounddefType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"compoundname\" type=\"xsd:string\"/>\n"
+" <xsd:element name=\"title\" type=\"xsd:string\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"basecompoundref\" type=\"compoundRefType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"derivedcompoundref\" type=\"compoundRefType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"includes\" type=\"incType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"includedby\" type=\"incType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"incdepgraph\" type=\"graphType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"invincdepgraph\" type=\"graphType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"innerfile\" type=\"refType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"innerclass\" type=\"refType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"innernamespace\" type=\"refType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"innerpage\" type=\"refType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"innergroup\" type=\"refType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"templateparamlist\" type=\"templateparamlistType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"sectiondef\" type=\"sectiondefType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"briefdescription\" type=\"descriptionType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"detaileddescription\" type=\"descriptionType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"inheritancegraph\" type=\"graphType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"collaborationgraph\" type=\"graphType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"programlisting\" type=\"listingType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"location\" type=\"locationType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"listofallmembers\" type=\"listofallmembersType\" minOccurs=\"0\" />\n"
+" </xsd:sequence>\n"
+" <xsd:attribute name=\"id\" />\n"
+" <xsd:attribute name=\"kind\" type=\"DoxCompoundKind\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"listofallmembersType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"member\" type=\"memberRefType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" </xsd:sequence>\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"memberRefType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"scope\" />\n"
+" <xsd:element name=\"name\" />\n"
+" </xsd:sequence>\n"
+" <xsd:attribute name=\"refid\" />\n"
+" <xsd:attribute name=\"prot\" type=\"DoxProtectionKind\" />\n"
+" <xsd:attribute name=\"virt\" type=\"DoxVirtualKind\" />\n"
+" <xsd:attribute name=\"ambiguityscope\" type=\"xsd:string\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"compoundRefType\" mixed=\"true\">\n"
+" <xsd:attribute name=\"refid\" />\n"
+" <xsd:attribute name=\"prot\" type=\"DoxProtectionKind\" />\n"
+" <xsd:attribute name=\"virt\" type=\"DoxVirtualKind\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"reimplementType\" mixed=\"true\">\n"
+" <xsd:attribute name=\"refid\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"incType\" mixed=\"true\">\n"
+" <xsd:attribute name=\"refid\" />\n"
+" <xsd:attribute name=\"local\" type=\"DoxBool\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"refType\" mixed=\"true\">\n"
+" <xsd:attribute name=\"refid\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"refTextType\" mixed=\"true\">\n"
+" <xsd:attribute name=\"refid\" />\n"
+" <xsd:attribute name=\"kindref\" />\n"
+" <xsd:attribute name=\"external\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"sectiondefType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"header\" type=\"xsd:string\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"memberdef\" type=\"memberdefType\" maxOccurs=\"unbounded\" />\n"
+" </xsd:sequence>\n"
+" <xsd:attribute name=\"kind\" type=\"DoxSectionKind\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"memberdefType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"type\" type=\"linkedTextType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"definition\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"argsstring\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"name\" />\n"
+" <xsd:element name=\"reimplements\" type=\"reimplementType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"reimplementedby\" type=\"reimplementType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"param\" type=\"paramType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"enumvalue\" type=\"enumvalueType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"initializer\" type=\"linkedTextType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"exceptions\" type=\"linkedTextType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"briefdescription\" type=\"descriptionType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"detaileddescription\" type=\"descriptionType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"location\" type=\"locationType\" />\n"
+" <xsd:element name=\"references\" type=\"referenceType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" <xsd:element name=\"referencedby\" type=\"referenceType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" </xsd:sequence>\n"
+" <xsd:attribute name=\"kind\" type=\"DoxMemberKind\" />\n"
+" <xsd:attribute name=\"id\" />\n"
+" <xsd:attribute name=\"prot\" type=\"DoxProtectionKind\" />\n"
+" <xsd:attribute name=\"static\" type=\"DoxBool\" />\n"
+" <xsd:attribute name=\"const\" type=\"DoxBool\" />\n"
+" <xsd:attribute name=\"explicit\" type=\"DoxBool\" />\n"
+" <xsd:attribute name=\"inline\" type=\"DoxBool\" />\n"
+" <xsd:attribute name=\"virt\" type=\"DoxVirtualKind\" />\n"
+" <xsd:attribute name=\"volatile\" type=\"DoxBool\" />\n"
+" <xsd:attribute name=\"mutable\" type=\"DoxBool\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"descriptionType\" mixed=\"true\">\n"
+" <xsd:sequence>\n"
+" <xsd:any processContents=\"lax\" minOccurs=\"0\" maxOccurs=\"unbounded\"/>\n"
+" </xsd:sequence>\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"enumvalueType\" mixed=\"true\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"name\" />\n"
+" <xsd:element name=\"briefdescription\" type=\"descriptionType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"detaileddescription\" type=\"descriptionType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"initializer\" type=\"linkedTextType\" minOccurs=\"0\" />\n"
+" </xsd:sequence>\n"
+" <xsd:attribute name=\"id\" />\n"
+" <xsd:attribute name=\"prot\" type=\"DoxProtectionKind\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"templateparamlistType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"param\" type=\"paramType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" </xsd:sequence>\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"paramType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"type\" type=\"linkedTextType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"declname\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"defname\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"array\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"defval\" type=\"linkedTextType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"briefdescription\" type=\"descriptionType\" minOccurs=\"0\" />\n"
+" </xsd:sequence>\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"linkedTextType\" mixed=\"true\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"ref\" type=\"refTextType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" </xsd:sequence>\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"graphType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"node\" type=\"nodeType\" maxOccurs=\"unbounded\" />\n"
+" </xsd:sequence>\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"nodeType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"label\" />\n"
+" <xsd:element name=\"link\" type=\"linkType\" minOccurs=\"0\" />\n"
+" <xsd:element name=\"childnode\" type=\"childnodeType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" </xsd:sequence>\n"
+" <xsd:attribute name=\"id\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"childnodeType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"edgelabel\" minOccurs=\"0\" maxOccurs=\"unbounded\"/>\n"
+" </xsd:sequence>\n"
+" <xsd:attribute name=\"refid\" />\n"
+" <xsd:attribute name=\"relation\" type=\"DoxGraphRelation\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"linkType\">\n"
+" <xsd:attribute name=\"refid\" />\n"
+" <xsd:attribute name=\"external\" use=\"optional\"/>\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"listingType\">\n"
" <xsd:sequence>\n"
+" <xsd:element name=\"codeline\" type=\"codelineType\" maxOccurs=\"unbounded\" />\n"
" </xsd:sequence>\n"
-" <xsd:attribute name=\"version\" type=\"xsd:string\" use=\"required\"/>\n"
" </xsd:complexType>\n"
"\n"
+" <xsd:complexType name=\"codelineType\">\n"
+" <xsd:sequence>\n"
+" <xsd:element name=\"highlight\" type=\"highlightType\" minOccurs=\"0\" maxOccurs=\"unbounded\" />\n"
+" </xsd:sequence>\n"
+" <xsd:attribute name=\"lineno\" type=\"xsd:integer\" />\n"
+" <xsd:attribute name=\"refid\" />\n"
+" <xsd:attribute name=\"refkind\" type=\"DoxRefKind\" />\n"
+" <xsd:attribute name=\"external\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"highlightType\" mixed=\"true\">\n"
+" <xsd:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n"
+" <xsd:element name=\"sp\" />\n"
+" <xsd:element name=\"ref\" type=\"refTextType\" />\n"
+" </xsd:choice>\n"
+" <xsd:attribute name=\"class\" type=\"DoxHighlightClass\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"referenceType\" mixed=\"true\">\n"
+" <xsd:attribute name=\"refid\" />\n"
+" <xsd:attribute name=\"compoundref\" use=\"optional\" />\n"
+" <xsd:attribute name=\"startline\" type=\"xsd:integer\" />\n"
+" <xsd:attribute name=\"endline\" type=\"xsd:integer\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <xsd:complexType name=\"locationType\">\n"
+" <xsd:attribute name=\"file\" />\n"
+" <xsd:attribute name=\"line\" type=\"xsd:integer\" />\n"
+" <xsd:attribute name=\"bodystart\" type=\"xsd:integer\" />\n"
+" <xsd:attribute name=\"bodyend\" type=\"xsd:integer\" />\n"
+" </xsd:complexType>\n"
+"\n"
+" <!-- Simple types -->\n"
+"\n"
+" <xsd:simpleType name=\"DoxBool\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:enumeration value=\"yes\" />\n"
+" <xsd:enumeration value=\"no\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+" <xsd:simpleType name=\"DoxGraphRelation\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:enumeration value=\"include\" />\n"
+" <xsd:enumeration value=\"usage\" />\n"
+" <xsd:enumeration value=\"template-instance\" />\n"
+" <xsd:enumeration value=\"public-inheritance\" />\n"
+" <xsd:enumeration value=\"protected-inheritance\" />\n"
+" <xsd:enumeration value=\"private-inheritance\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+" <xsd:simpleType name=\"DoxRefKind\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:enumeration value=\"compound\" />\n"
+" <xsd:enumeration value=\"member\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+" <xsd:simpleType name=\"DoxMemberKind\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:enumeration value=\"define\" />\n"
+" <xsd:enumeration value=\"property\" />\n"
+" <xsd:enumeration value=\"event\" />\n"
+" <xsd:enumeration value=\"variable\" />\n"
+" <xsd:enumeration value=\"typedef\" />\n"
+" <xsd:enumeration value=\"enum\" />\n"
+" <xsd:enumeration value=\"function\" />\n"
+" <xsd:enumeration value=\"signal\" />\n"
+" <xsd:enumeration value=\"prototype\" />\n"
+" <xsd:enumeration value=\"friend\" />\n"
+" <xsd:enumeration value=\"dcop\" />\n"
+" <xsd:enumeration value=\"slot\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+" <xsd:simpleType name=\"DoxProtectionKind\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:enumeration value=\"public\" />\n"
+" <xsd:enumeration value=\"protected\" />\n"
+" <xsd:enumeration value=\"private\" />\n"
+" <xsd:enumeration value=\"package\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+" <xsd:simpleType name=\"DoxVirtualKind\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:enumeration value=\"non-virtual\" />\n"
+" <xsd:enumeration value=\"virtual\" />\n"
+" <xsd:enumeration value=\"pure-virtual\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+" <xsd:simpleType name=\"DoxCompoundKind\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:enumeration value=\"class\" />\n"
+" <xsd:enumeration value=\"struct\" />\n"
+" <xsd:enumeration value=\"union\" />\n"
+" <xsd:enumeration value=\"interface\" />\n"
+" <xsd:enumeration value=\"exception\" />\n"
+" <xsd:enumeration value=\"file\" />\n"
+" <xsd:enumeration value=\"namespace\" />\n"
+" <xsd:enumeration value=\"group\" />\n"
+" <xsd:enumeration value=\"page\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+" <xsd:simpleType name=\"DoxSectionKind\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:enumeration value=\"user-defined\" />\n"
+" <xsd:enumeration value=\"public-type\" />\n"
+" <xsd:enumeration value=\"public-func\" />\n"
+" <xsd:enumeration value=\"public-attrib\" />\n"
+" <xsd:enumeration value=\"public-slot\" />\n"
+" <xsd:enumeration value=\"signal\" />\n"
+" <xsd:enumeration value=\"dcop-func\" />\n"
+" <xsd:enumeration value=\"property\" />\n"
+" <xsd:enumeration value=\"event\" />\n"
+" <xsd:enumeration value=\"public-static-func\" />\n"
+" <xsd:enumeration value=\"public-static-attrib\" />\n"
+" <xsd:enumeration value=\"protected-type\" />\n"
+" <xsd:enumeration value=\"protected-func\" />\n"
+" <xsd:enumeration value=\"protected-attrib\" />\n"
+" <xsd:enumeration value=\"protected-slot\" />\n"
+" <xsd:enumeration value=\"protected-static-func\" />\n"
+" <xsd:enumeration value=\"protected-static-attrib\" />\n"
+" <xsd:enumeration value=\"private-type\" />\n"
+" <xsd:enumeration value=\"private-func\" />\n"
+" <xsd:enumeration value=\"private-attrib\" />\n"
+" <xsd:enumeration value=\"private-slot\" />\n"
+" <xsd:enumeration value=\"private-static-func\" />\n"
+" <xsd:enumeration value=\"private-static-attrib\" />\n"
+" <xsd:enumeration value=\"friend\" />\n"
+" <xsd:enumeration value=\"related\" />\n"
+" <xsd:enumeration value=\"define\" />\n"
+" <xsd:enumeration value=\"prototype\" />\n"
+" <xsd:enumeration value=\"typedef\" />\n"
+" <xsd:enumeration value=\"enum\" />\n"
+" <xsd:enumeration value=\"func\" />\n"
+" <xsd:enumeration value=\"var\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+" <xsd:simpleType name=\"DoxHighlightClass\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:enumeration value=\"comment\" />\n"
+" <xsd:enumeration value=\"normal\" />\n"
+" <xsd:enumeration value=\"preprocessor\" />\n"
+" <xsd:enumeration value=\"keyword\" />\n"
+" <xsd:enumeration value=\"keywordtype\" />\n"
+" <xsd:enumeration value=\"keywordflow\" />\n"
+" <xsd:enumeration value=\"stringliteral\" />\n"
+" <xsd:enumeration value=\"charliteral\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+" <xsd:simpleType name=\"DoxVersionNumber\">\n"
+" <xsd:restriction base=\"xsd:string\">\n"
+" <xsd:pattern value=\"\\d+\\.\\d+.*\" />\n"
+" </xsd:restriction>\n"
+" </xsd:simpleType>\n"
+"\n"
+"\n"
"</xsd:schema>\n"
"\n"
diff --git a/src/definition.h b/src/definition.h
index 02518b9..f74123e 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -31,7 +31,7 @@ class MemberDef;
class GroupDef;
class GroupList;
struct ListItemInfo;
-class SectionInfo;
+struct SectionInfo;
/*! The common base class of all entity definitions found in the sources. */
class Definition
diff --git a/src/doctokenizer.l b/src/doctokenizer.l
index 2a17819..1e4b2d1 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -229,6 +229,29 @@ static void processSection()
}
}
+static void handleHtmlTag()
+{
+ g_token->name = yytext;
+ g_token->attribs.clear();
+ int startNamePos=1;
+ if (g_token->name.at(1)=='/') startNamePos++;
+ int attSep=0;
+ while (attSep<yyleng && !isspace(yytext[attSep]))
+ {
+ attSep++;
+ }
+ if (attSep!=yyleng) // tag has one or more options
+ {
+ parseHtmlAttribs(g_token->name.mid(attSep+1,g_token->name.length()-attSep-2));
+ g_token->name=g_token->name.mid(startNamePos,attSep-1).lower();
+ }
+ else // tag without options, strip brackets
+ {
+ g_token->name=g_token->name.mid(startNamePos,g_token->name.length()-startNamePos-1).lower();
+ }
+ g_token->endTag = startNamePos==2;
+}
+
//--------------------------------------------------------------------------
#undef YY_INPUT
@@ -255,7 +278,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
OPTSTARS ("//"{BLANK}*)?"*"*{BLANK}*
LISTITEM {BLANK}*{OPTSTARS}"-"("#")?{WS}
ENDLIST {BLANK}*{OPTSTARS}"."{BLANK}*\n
-ATTRIB {ID}("="(("\""[^\"]*"\"")|("'"[^\']*"'")|[^ \t\r\n'"><]+))?
+ATTRIB {ID}{WS}*("="{WS}*(("\""[^\"]*"\"")|("'"[^\']*"'")|[^ \t\r\n'"><]+))?
URLCHAR [a-z_A-Z0-9\!\~\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))([({]{URLCHAR}*[)}])?
FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+]
@@ -283,7 +306,7 @@ WORD1 [^ \t\n\r\\@<>()\[\]:;\?{}&$#,.]+|"{"|"}"|("\""[^"\n]*"\"")
WORD2 "."|","|"("|")"|"["|"]"|":"|";"|"\?"
WORD1NQ [^ \t\n\r\\@<>()\[\]:;\?{}&$#,."]+
WORD2NQ "."|","|"("|")"|"["|"]"|":"|";"|"\?"
-HTMLTAG "<"(("/")?){ID}({WS}+{ATTRIB})*">"
+HTMLTAG "<"(("/")?){ID}({WS}+{ATTRIB})*{WS}*">"
HTMLKEYL "strong"|"center"|"table"|"caption"|"small"|"code"|"dfn"|"var"|"img"|"pre"|"sub"|"sup"|"tr"|"td"|"th"|"ol"|"ul"|"li"|"tt"|"kbd"|"em"|"hr"|"dl"|"dt"|"dd"|"br"|"i"|"a"|"b"|"p"
HTMLKEYU "STRONG"|"CENTER"|"TABLE"|"CAPTION"|"SMALL"|"CODE"|"DFN"|"VAR"|"IMG"|"PRE"|"SUB"|"SUP"|"TR"|"TD"|"TH"|"OL"|"UL"|"LI"|"TT"|"KBD"|"EM"|"HR"|"DL"|"DT"|"DD"|"BR"|"I"|"A"|"B"|"P"
HTMLKEYW {HTMLKEYL}|{HTMLKEYU}
@@ -391,25 +414,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
for (int i=value.length()-1;i>=0;i--) unput(value.at(i));
}
<St_Para>{HTMLTAG} { /* html tag */
- g_token->name = yytext;
- g_token->attribs.clear();
- int startNamePos=1;
- if (g_token->name.at(1)=='/') startNamePos++;
- int attSep=0;
- while (attSep<yyleng && !isspace(yytext[attSep]))
- {
- attSep++;
- }
- if (attSep!=yyleng) // tag has one or more options
- {
- parseHtmlAttribs(g_token->name.mid(attSep+1,g_token->name.length()-attSep-2));
- g_token->name=g_token->name.mid(startNamePos,attSep-1).lower();
- }
- else // tag without options, strip brackets
- {
- g_token->name=g_token->name.mid(startNamePos,g_token->name.length()-startNamePos-1).lower();
- }
- g_token->endTag = startNamePos==2;
+ handleHtmlTag();
return TK_HTMLTAG;
}
<St_Para,St_Text>"&"{ID}";" { /* special symbol */
@@ -538,6 +543,8 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
g_token->name = yytext;
return TK_SYMBOL;
}
+<St_TitleN>{HTMLTAG} {
+ }
<St_TitleN>{SPCMD1} |
<St_TitleN>{SPCMD2} { /* special command */
g_token->name = yytext+1;
diff --git a/src/dot.cpp b/src/dot.cpp
index 862d14c..a9585bf 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -612,10 +612,10 @@ void DotNode::writeXML(QTextStream &t,bool isClassGraph)
if (urlPtr)
{
*urlPtr++='\0';
- t << " <link id=\"" << urlPtr << "\"";
+ t << " <link refid=\"" << convertToXML(urlPtr) << "\"";
if (*refPtr!='\0')
{
- t << " external=\"" << refPtr << "\"";
+ t << " external=\"" << convertToXML(refPtr) << "\"";
}
t << "/>" << endl;
}
@@ -629,7 +629,7 @@ void DotNode::writeXML(QTextStream &t,bool isClassGraph)
for (;(childNode=nli.current());++nli,++eli)
{
edgeInfo=eli.current();
- t << " <childnode id=\"" << childNode->m_number << "\" relation=\"";
+ t << " <childnode refid=\"" << childNode->m_number << "\" relation=\"";
if (isClassGraph)
{
switch(edgeInfo->m_color)
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index fe2d958..c4c88a3 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -235,7 +235,6 @@ static void addRelatedPage(Entry *root)
}
}
-
static void buildGroupListFiltered(Entry *root,bool additional)
{
if (root->section==Entry::GROUPDOC_SEC && !root->name.isEmpty())
@@ -6783,10 +6782,11 @@ static void readFiles(BufStr &output)
int fileNameSize=fileName.length();
- bool multiLineIsBrief = Config_getBool("MULTILINE_CPP_IS_BRIEF");
+ //bool multiLineIsBrief = Config_getBool("MULTILINE_CPP_IS_BRIEF");
- BufStr tempBuf(10000);
- BufStr *bufPtr = multiLineIsBrief ? &output : &tempBuf;
+ BufStr tempBuf(20000);
+ //BufStr *bufPtr = multiLineIsBrief ? &output : &tempBuf;
+ BufStr *bufPtr = &tempBuf;
// add begin filename marker
bufPtr->addChar(0x06);
@@ -6809,10 +6809,10 @@ static void readFiles(BufStr &output)
bufPtr->addChar('\n'); /* to prevent problems under Windows ? */
- if (!multiLineIsBrief)
- {
+ //if (!multiLineIsBrief)
+ //{
convertCppComments(&tempBuf,&output);
- }
+ //}
s=inputFiles.next();
//printf("-------> adding new line\n");
diff --git a/src/entry.h b/src/entry.h
index afde3ec..594a3c8 100644
--- a/src/entry.h
+++ b/src/entry.h
@@ -21,7 +21,7 @@
#include "qtbc.h"
#include <qlist.h>
-class SectionInfo;
+struct SectionInfo;
enum Protection { Public, Protected, Private, Package } ;
enum Specifier { Normal, Virtual, Pure } ;
diff --git a/src/index.xsd b/src/index.xsd
index 5bf7a62..3a6238e 100644
--- a/src/index.xsd
+++ b/src/index.xsd
@@ -1,5 +1,6 @@
+<?xml version='1.0' encoding='utf-8' ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <xsd:element name="doxygen" type="DoxygenType"/>
+ <xsd:element name="doxygenindex" type="DoxygenType"/>
<xsd:complexType name="DoxygenType">
<xsd:sequence>
@@ -47,6 +48,7 @@
<xsd:enumeration value="variable"/>
<xsd:enumeration value="typedef"/>
<xsd:enumeration value="enum"/>
+ <xsd:enumeration value="enumvalue"/>
<xsd:enumeration value="function"/>
<xsd:enumeration value="signal"/>
<xsd:enumeration value="prototype"/>
diff --git a/src/index_xsd.h b/src/index_xsd.h
index e0efd95..1b02e92 100644
--- a/src/index_xsd.h
+++ b/src/index_xsd.h
@@ -1,5 +1,6 @@
+"<?xml version='1.0' encoding='utf-8' ?>\n"
"<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n"
-" <xsd:element name=\"doxygen\" type=\"DoxygenType\"/>\n"
+" <xsd:element name=\"doxygenindex\" type=\"DoxygenType\"/>\n"
"\n"
" <xsd:complexType name=\"DoxygenType\">\n"
" <xsd:sequence>\n"
@@ -47,6 +48,7 @@
" <xsd:enumeration value=\"variable\"/>\n"
" <xsd:enumeration value=\"typedef\"/>\n"
" <xsd:enumeration value=\"enum\"/>\n"
+" <xsd:enumeration value=\"enumvalue\"/>\n"
" <xsd:enumeration value=\"function\"/>\n"
" <xsd:enumeration value=\"signal\"/>\n"
" <xsd:enumeration value=\"prototype\"/>\n"
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 5c67c03..c9b36c8 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -500,18 +500,10 @@ void MemberDef::writeLink(OutputList &ol,ClassDef *cd,NamespaceDef *nd,
else // local link
{
QCString sep = Config_getBool("OPTIMIZE_OUTPUT_JAVA") ? "." : "::";
- if (cd)
- {
- ol.writeObjectLink(d->getReference(),d->getOutputFileBase(),anchor(),cd->name()+sep+name());
- }
- else if (nd)
- {
- ol.writeObjectLink(d->getReference(),d->getOutputFileBase(),anchor(),nd->name()+sep+name());
- }
- else
- {
- ol.writeObjectLink(d->getReference(),d->getOutputFileBase(),anchor(),name());
- }
+ QCString n = name();
+ if (classDef && gd) n.prepend(classDef->name()+sep);
+ else if (nspace && gd) n.prepend(nspace->name()+sep);
+ ol.writeObjectLink(d->getReference(),d->getOutputFileBase(),anchor(),n);
}
}
diff --git a/src/scanner.l b/src/scanner.l
index a482d39..8b47179 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -4675,6 +4675,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<Doc,ClassDoc,PageDoc,ExampleDoc,AfterDoc>"\\"[a-z_A-Z][a-z_A-Z0-9]*[\\] { // directory type of text
current->doc+=yytext;
}
+ /*
<SkipSection>{CMD}[a-z_A-Z][a-z_A-Z0-9]* {
QCString *pValue=Doxygen::aliasDict[yytext+1];
if (pValue)
@@ -4686,6 +4687,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
}
}
+ */
<Doc,ClassDoc,PageDoc,ExampleDoc,AfterDoc,CopyArgComment>{CMD}{CMD}[a-z_A-Z][a-z_A-Z0-9]* { /* escaped command */
if (YY_START==CopyArgComment)
fullArgString+=yytext;
@@ -4731,25 +4733,25 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
if (!handled)
{
- QCString *pValue=Doxygen::aliasDict[yytext+1];
- if (pValue)
- {
- int i,l=pValue->length();
- char c;
- for (i=l-1;i>=0;i--)
- {
- c=pValue->at(i);
- unput(c);
- if (c=='\n') yyLineNr--;
- }
- }
- else
- {
- if (YY_START==CopyArgComment)
- fullArgString+=yytext;
- else
- current->doc+=yytext;
- }
+ //QCString *pValue=Doxygen::aliasDict[yytext+1];
+ //if (pValue)
+ //{
+ // int i,l=pValue->length();
+ // char c;
+ // for (i=l-1;i>=0;i--)
+ // {
+ // c=pValue->at(i);
+ // unput(c);
+ // if (c=='\n') yyLineNr--;
+ // }
+ //}
+ //else
+ //{
+ if (YY_START==CopyArgComment)
+ fullArgString+=yytext;
+ else
+ current->doc+=yytext;
+ //}
}
}
<JavaDoc,LineDoc,ClassDocBrief,AfterDocBrief,AfterDocLine>"\\"[a-z_A-Z][a-z_A-Z0-9]*[\\] { // directory type of text
@@ -4763,22 +4765,22 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->brief+=yytext;
}
<JavaDoc,LineDoc,ClassDocBrief,AfterDocBrief,AfterDocLine,CopyArgCommentLine>{CMD}[a-z_A-Z][a-z_A-Z0-9]* {
- QCString *pValue=Doxygen::aliasDict[yytext+1];
- if (pValue)
- {
- int i,l=pValue->length();
- for (i=l-1;i>=0;i--)
- {
- unput(pValue->at(i));
- }
- }
- else
- {
+ //QCString *pValue=Doxygen::aliasDict[yytext+1];
+ //if (pValue)
+ //{
+ // int i,l=pValue->length();
+ // for (i=l-1;i>=0;i--)
+ // {
+ // unput(pValue->at(i));
+ // }
+ //}
+ //else
+ //{
if (YY_START==CopyArgCommentLine)
fullArgString+=yytext;
else
current->brief+=yytext;
- }
+ //}
}
<DefLineDoc,LineDoc,ClassDoc,PageDoc,ExampleDoc,Doc>"/*"|"//" { current->doc += yytext; }
<SkipCxxComment>.*/\n {
diff --git a/src/translator_jp.h b/src/translator_jp.h
index d4286be..4d7c8e0 100644
--- a/src/translator_jp.h
+++ b/src/translator_jp.h
@@ -64,7 +64,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish
}
};
-class TranslatorJapanese : public TranslatorAdapter_1_3
+class TranslatorJapanese : public TranslatorEnglish
{
private:
/*! The decode() can change euc into sjis */
@@ -1394,7 +1394,7 @@ class TranslatorJapanese : public TranslatorAdapter_1_3
*/
virtual QCString trDeprecatedList()
{
- return "Èó¿ä¾©°ìÍ÷";
+ return decode("Èó¿ä¾©°ìÍ÷");
}
//////////////////////////////////////////////////////////////////////////
@@ -1406,13 +1406,68 @@ class TranslatorJapanese : public TranslatorAdapter_1_3
*/
virtual QCString trEvents()
{
- return "¥¤¥Ù¥ó¥È";
+ return decode("¥¤¥Ù¥ó¥È");
}
/*! Header used for the documentation section of a class' events. */
virtual QCString trEventDocumentation()
{
- return "¥¤¥Ù¥ó¥È¤Î²òÀâ";
+ return decode("¥¤¥Ù¥ó¥È¤Î²òÀâ");
}
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a heading for a list of Java class types with package scope.
+ */
+ virtual QCString trPackageTypes()
+ {
+ return decode("¥Ñ¥Ã¥±¡¼¥¸Æâ¤Î·¿ÄêµÁ");
+ }
+ /*! Used as a heading for a list of Java class functions with package
+ * scope.
+ */
+ virtual QCString trPackageMembers()
+ {
+ return decode("´Ø¿ô");
+ }
+ /*! Used as a heading for a list of static Java class functions with
+ * package scope.
+ */
+ virtual QCString trStaticPackageMembers()
+ {
+ return decode("¥¹¥¿¥Æ¥£¥Ã¥¯´Ø¿ô");
+ }
+ /*! Used as a heading for a list of Java class variables with package
+ * scope.
+ */
+ virtual QCString trPackageAttribs()
+ {
+ return decode("ÊÑ¿ô");
+ }
+ /*! Used as a heading for a list of static Java class variables with
+ * package scope.
+ */
+ virtual QCString trStaticPackageAttribs()
+ {
+ return decode("¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô");
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used in the quick index of a class/file/namespace member list page
+ * to link to the unfiltered list of all members.
+ */
+ virtual QCString trAll()
+ {
+ return decode("Á´¤Æ");
+ }
+ /*! Put in front of the call graph for a function. */
+ virtual QCString trCallGraph()
+ {
+ return decode("´Ø¿ô¤Î¸Æ¤Ó½Ð¤·¥°¥é¥Õ:");
+ }
};
#endif
diff --git a/src/translator_tw.h b/src/translator_tw.h
index a4c68fc..a22c39e 100644
--- a/src/translator_tw.h
+++ b/src/translator_tw.h
@@ -1,18 +1,20 @@
/******************************************************************************
*
- *
+ *
*
* Copyright (C) 1997-2003 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
- * documentation under the terms of the GNU General Public License is hereby
- * granted. No representations are made about the suitability of this software
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
+ * The translation into Chinesetraditional was provided by
+ * Daniel YC Lin (daniel@twpda.com) since v1.2.16
*/
#ifndef TRANSLATOR_TW_H
@@ -44,19 +46,19 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
public:
// --- Language control methods -------------------
-
- /*! Used for identification of the language. The identification
- * should not be translated. It should be replaced by the name
+
+ /*! Used for identification of the language. The identification
+ * should not be translated. It should be replaced by the name
* of the language in English using lower-case characters only
- * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
+ * (e.g. "czech", "japanese", "russian", etc.). It should be equal to
* the identification used in language.cpp.
*/
virtual QCString idLanguage()
{ return "chinese-traditional"; }
-
- /*! Used to get the LaTeX command(s) for the language support.
+
+ /*! Used to get the LaTeX command(s) for the language support.
* This method should return string with commands that switch
- * LaTeX to the desired language. For example
+ * LaTeX to the desired language. For example
* <pre>"\\usepackage[german]{babel}\n"
* </pre>
* or
@@ -64,7 +66,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
* "\\usepackage[latin2]{inputenc}\n"
* "\\usepackage[T1]{fontenc}\n"
* </pre>
- *
+ *
* The English LaTeX does not use such commands. Because of this
* the empty string is returned in this implementation.
*/
@@ -96,30 +98,30 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
/*! header that is put before the list of typedefs. */
virtual QCString trMemberTypedefDocumentation()
{ return "«¬ºA©w¸q¦¨­û»¡©ú¤å¥ó"; }
-
+
/*! header that is put before the list of enumerations. */
virtual QCString trMemberEnumerationDocumentation()
{ return "¦CÁ|«¬ºA¦¨­û»¡©ú¤å¥ó"; }
-
+
/*! header that is put before the list of member functions. */
virtual QCString trMemberFunctionDocumentation()
{ return "¨ç¦¡¦¨­û»¡©ú¤å¥ó"; }
-
+
/*! header that is put before the list of member attributes. */
virtual QCString trMemberDataDocumentation()
- {
+ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "Äæ¦ì»¡©ú¤å¥ó";
+ return "Äæ¦ì»¡©ú¤å¥ó";
}
else
{
- return "¸ê®Æ¦¨­û»¡©ú¤å¥ó";
+ return "¸ê®Æ¦¨­û»¡©ú¤å¥ó";
}
}
/*! this is the text of a link put after brief descriptions. */
- virtual QCString trMore()
+ virtual QCString trMore()
{ return "§ó¦h..."; }
/*! put in the class documentation */
@@ -137,54 +139,54 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
/*! this is the remainder of the sentence after the class name */
virtual QCString trIncludingInheritedMembers()
{ return ", ¥]§t©Ò¦³Ä~©Óªº¦¨­û"; }
-
+
/*! this is put at the author sections at the bottom of man pages.
* parameter s is name of the project name.
*/
virtual QCString trGeneratedAutomatically(const char *s)
{ QCString result="¥»¤å¥ó¥ÑDoxygen";
if (s) result+=(QCString)" ¦Û "+s;
- result+=" ªº­ì©l½X¤¤¦Û°Ê²£¥Í.";
+ result+=" ªº­ì©l½X¤¤¦Û°Ê²£¥Í.";
return result;
}
/*! put after an enum name in the list of all members */
virtual QCString trEnumName()
{ return "¦CÁ|«¬ºA¦WºÙ"; }
-
+
/*! put after an enum value in the list of all members */
virtual QCString trEnumValue()
{ return "¦CÁ|­È"; }
-
+
/*! put after an undocumented member in the list of all members */
virtual QCString trDefinedIn()
{ return "³Q©w¸q©ó"; }
// quick reference sections
- /*! This is put above each page as a link to the list of all groups of
+ /*! This is put above each page as a link to the list of all groups of
* compounds or files (see the \\group command).
*/
virtual QCString trModules()
{ return "¼Ò²Õ"; }
-
+
/*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy()
{ return "Ãþ§O¶¥¼h"; }
-
+
/*! This is put above each page as a link to the list of annotated classes */
virtual QCString trCompoundList()
- {
+ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "¸ê®Æµ²ºc";
}
else
{
- return "½Æ¦X¦Cªí";
+ return "½Æ¦X¦Cªí";
}
}
-
+
/*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList()
{ return "ÀɮצCªí"; }
@@ -195,27 +197,27 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
/*! This is put above each page as a link to all members of compounds. */
virtual QCString trCompoundMembers()
- {
+ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "¸ê®ÆÄæ¦ì";
+ return "¸ê®ÆÄæ¦ì";
}
else
{
- return "½Æ¦X¦¨­û";
+ return "½Æ¦X¦¨­û";
}
}
/*! This is put above each page as a link to all members of files. */
virtual QCString trFileMembers()
- {
+ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "¥þ°ì¸ê®Æ";
+ return "¥þ°ì¸ê®Æ";
}
else
{
- return "Àɮצ¨­û";
+ return "Àɮצ¨­û";
}
}
@@ -247,16 +249,16 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
/*! This is an introduction to the annotated compound list. */
virtual QCString trCompoundListDescription()
- {
-
+ {
+
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "³o¬Oªþ±a²²¤»¡©úªº¸ê®Æµ²ºc:";
+ return "³o¬Oªþ±a²²¤»¡©úªº¸ê®Æµ²ºc:";
}
else
{
return "³o¬Oªþ±a²²¤»¡©úªºÃþ§O¡Aµ²ºc¡A"
- "Áp¦X«¬ºA(unions)¤Î¤¶­±(interfaces):";
+ "Áp¦X«¬ºA(unions)¤Î¤¶­±(interfaces):";
}
}
@@ -277,7 +279,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
result+="Ãþ§O¦¨­û";
}
result+=", ¨Ã¥B±a¦³³sµ²¦Ü";
- if (!extractAll)
+ if (!extractAll)
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
@@ -288,7 +290,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
result+="¨C­Ó¦¨­ûªºÃþ§O»¡©ú¤å¥ó:";
}
}
- else
+ else
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
@@ -307,7 +309,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
{
QCString result="³o¬O¥þ³¡";
if (!extractAll) result+="¤å¥ó¤Æªº";
-
+
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
result+="¨ç¦¡¡AÅܼơA©w¸q¡A¦CÁ|¡A¤Î«¬ºA©w¸q";
@@ -317,9 +319,9 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
result+="Àɮצ¨­û";
}
result+="¡A¨Ã¥B±a¦³³sµ²¦Ü";
- if (extractAll)
+ if (extractAll)
result+="³o¨ÇÀɮשÒÄÝ:";
- else
+ else
result+="»¡©ú¤å¥ó:";
return result;
}
@@ -341,49 +343,49 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
{ return "©Ò¦³¼Ò²Õ¦Cªí:"; }
/*! This sentences is used in the annotated class/file lists if no brief
- * description is given.
+ * description is given.
*/
virtual QCString trNoDescriptionAvailable()
{ return "¨S¦³¥i¥Îªº»¡©ú´y­z"; }
-
- // index titles (the project name is prepended for these)
+
+ // index titles (the project name is prepended for these)
/*! This is used in HTML as the title of index.html. */
virtual QCString trDocumentation()
{ return "»¡©ú¤å¥ó"; }
- /*! This is used in LaTeX as the title of the chapter with the
+ /*! This is used in LaTeX as the title of the chapter with the
* index of all groups.
*/
virtual QCString trModuleIndex()
{ return "¼Ò²Õ¯Á¤Þ"; }
- /*! This is used in LaTeX as the title of the chapter with the
+ /*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
*/
virtual QCString trHierarchicalIndex()
{ return "¶¥¼h¯Á¤Þ"; }
- /*! This is used in LaTeX as the title of the chapter with the
+ /*! This is used in LaTeX as the title of the chapter with the
* annotated compound index.
*/
virtual QCString trCompoundIndex()
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
- {
+ {
return "¸ê®Æµ²ºc¯Á¤Þ";
}
else
{
- return "½Æ¦X¯Á¤Þ";
+ return "½Æ¦X¯Á¤Þ";
}
}
/*! This is used in LaTeX as the title of the chapter with the
* list of all files.
*/
- virtual QCString trFileIndex()
+ virtual QCString trFileIndex()
{ return "ÀɮׯÁ¤Þ"; }
/*! This is used in LaTeX as the title of the chapter containing
@@ -396,14 +398,14 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
* the documentation of all classes, structs and unions.
*/
virtual QCString trClassDocumentation()
- {
+ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "¸ê®Æµ²ºc»¡©ú¤å¥ó";
+ return "¸ê®Æµ²ºc»¡©ú¤å¥ó";
}
else
{
- return "Ãþ§O»¡©ú¤å¥ó";
+ return "Ãþ§O»¡©ú¤å¥ó";
}
}
@@ -428,111 +430,111 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
/*! This is used in LaTeX as the title of the document */
virtual QCString trReferenceManual()
{ return "°Ñ¦Ò¤â¥U"; }
-
- /*! This is used in the documentation of a file as a header before the
+
+ /*! This is used in the documentation of a file as a header before the
* list of defines
*/
virtual QCString trDefines()
{ return "©w¸q"; }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of function prototypes
*/
virtual QCString trFuncProtos()
{ return "¨ç¦¡­ì«¬"; }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of typedefs
*/
virtual QCString trTypedefs()
{ return "«¬ºA©w¸q"; }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of enumerations
*/
virtual QCString trEnumerations()
{ return "¦CÁ|«¬ºA"; }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of (global) functions
*/
virtual QCString trFunctions()
{ return "¨ç¦¡"; }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trVariables()
{ return "ÅܼÆ"; }
- /*! This is used in the documentation of a file as a header before the
+ /*! This is used in the documentation of a file as a header before the
* list of (global) variables
*/
virtual QCString trEnumerationValues()
{ return "¦CÁ|­È"; }
-
+
/*! This is used in the documentation of a file before the list of
* documentation blocks for defines
*/
virtual QCString trDefineDocumentation()
{ return "©w¸q¥¨¶°»¡©ú¤å¥ó"; }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for function prototypes
*/
virtual QCString trFunctionPrototypeDocumentation()
{ return "¨ç¦¡­ì«¬»¡©ú¤å¥ó"; }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for typedefs
*/
virtual QCString trTypedefDocumentation()
{ return "«¬ºA©w¸q»¡©ú¤å¥ó"; }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration types
*/
virtual QCString trEnumerationTypeDocumentation()
{ return "¦CÁ|«¬ºA»¡©ú¤å¥ó"; }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for enumeration values
*/
virtual QCString trEnumerationValueDocumentation()
{ return "¦CÁ|­È»¡©ú¤å¥ó"; }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for functions
*/
virtual QCString trFunctionDocumentation()
{ return "¨ç¦¡»¡©ú¤å¥ó"; }
- /*! This is used in the documentation of a file/namespace before the list
+ /*! This is used in the documentation of a file/namespace before the list
* of documentation blocks for variables
*/
virtual QCString trVariableDocumentation()
{ return "Åܼƻ¡©ú¤å¥ó"; }
- /*! This is used in the documentation of a file/namespace/group before
+ /*! This is used in the documentation of a file/namespace/group before
* the list of links to documented compounds
*/
virtual QCString trCompounds()
- {
+ {
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
- return "¸ê®Æµ²ºc";
+ return "¸ê®Æµ²ºc";
}
else
{
- return "½Æ¦X¶µ¥Ø";
+ return "½Æ¦X¶µ¥Ø";
}
}
- /*! This is used in the standard footer of each page and indicates when
- * the page was generated
+ /*! This is used in the standard footer of each page and indicates when
+ * the page was generated
*/
virtual QCString trGeneratedAt(const char *date,const char *projName)
- {
+ {
QCString result=(QCString)"²£¥Í¤é´Á:"+date;
if (projName) result+=(QCString)", ±M®×:"+projName;
result+=(QCString)", ²£¥Í¾¹:";
@@ -550,7 +552,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
{
return (QCString)"Ãþ§O"+clName+"ªºÄ~©Ó¹Ï:";
}
-
+
/*! this text is generated when the \\internal command is used. */
virtual QCString trForInternalUseOnly()
{ return "¶È¨Ñ¤º³¡¨Ï¥Î."; }
@@ -590,7 +592,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
/*! this text is generated when the \\exception command is used. */
virtual QCString trExceptions()
{ return "¨Ò¥~"; }
-
+
/*! this text is used in the title page of a LaTeX document. */
virtual QCString trGeneratedBy()
{ return "²£¥ÍªÌ:"; }
@@ -598,7 +600,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990307
//////////////////////////////////////////////////////////////////////////
-
+
/*! used as the title of page containing all the index of all namespaces. */
virtual QCString trNamespaceList()
{ return "©R¦WªÅ¶¡(name space)¦Cªí"; }
@@ -617,17 +619,17 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
*/
virtual QCString trFriends()
{ return "Ãþ§OªB¤Í(Friends)"; }
-
+
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
//////////////////////////////////////////////////////////////////////////
-
+
/*! used in the class documentation as a header before the list of all
- * related classes
+ * related classes
*/
virtual QCString trRelatedFunctionDocumentation()
{ return "Ãþ§OªB¤Í¤Î¬ÛÃö¨ç¦¡»¡©ú¤å¥ó"; }
-
+
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990425
//////////////////////////////////////////////////////////////////////////
@@ -655,7 +657,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
virtual QCString trFileReference(const char *fileName)
{
QCString result=fileName;
- result+=" ÀɮװѦҤå¥ó";
+ result+=" ÀɮװѦҤå¥ó";
return result;
}
@@ -666,7 +668,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
result+=" ©R¦WªÅ¶¡(Namespace)°Ñ¦Ò¤å¥ó";
return result;
}
-
+
virtual QCString trPublicMembers()
{ return "¤½¶}¤èªk(Public Methods)"; }
virtual QCString trPublicSlots()
@@ -687,7 +689,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
{ return "¨p¦³´¡¼Ñ(Private Slots)"; }
virtual QCString trStaticPrivateMembers()
{ return "ÀRºA¨p¦³¤èªk(Static Private Methods)"; }
-
+
/*! this function is used to produce a comma-separated list of items.
* use generateMarker(i) to indicate where item i should be put.
*/
@@ -696,23 +698,23 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
QCString result;
int i;
// the inherits list contain `numEntries' classes
- for (i=0;i<numEntries;i++)
+ for (i=0;i<numEntries;i++)
{
// use generateMarker to generate placeholders for the class links!
- result+=generateMarker(i); // generate marker for entry i in the list
+ result+=generateMarker(i); // generate marker for entry i in the list
// (order is left to right)
-
+
if (i!=numEntries-1) // not the last entry, so we need a separator
{
- if (i<numEntries-2) // not the fore last entry
+ if (i<numEntries-2) // not the fore last entry
result+=", ";
else // the fore last entry
result+=", ¤Î ";
}
}
- return result;
+ return result;
}
-
+
/*! used in class documentation to produce a list of base classes,
* if class diagrams are disabled.
*/
@@ -729,7 +731,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
return "³Q "+trWriteList(numEntries)+"Ä~©Ó.";
}
- /*! used in member documentation blocks to produce a list of
+ /*! used in member documentation blocks to produce a list of
* members that are hidden by this one.
*/
virtual QCString trReimplementedFromList(int numEntries)
@@ -751,17 +753,17 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
/*! This is an introduction to the page with all namespace members */
virtual QCString trNamespaceMemberDescription(bool extractAll)
- {
+ {
QCString result="¦¹³B¦Cªí¬°©Ò¦³ ";
if (!extractAll) result+="¤å¥ó¤Æªº ";
result+="©R¦WªÅ¶¡(namespace)¦¨­û¡A¨Ã¥Bªþ±a³sµ²¦Ü ";
- if (extractAll)
+ if (extractAll)
result+="¨C­Ó¦¨­ûªº»¡©ú¤å¥ó:";
- else
+ else
result+="¸Ó©R¦WªÅ¶¡©ÒÄݤ§³B:";
return result;
}
- /*! This is used in LaTeX as the title of the chapter with the
+ /*! This is used in LaTeX as the title of the chapter with the
* index of all namespaces.
*/
virtual QCString trNamespaceIndex()
@@ -827,7 +829,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
virtual QCString trMainPage()
{ return "¥D­¶­±"; }
- /*! This is used in references to page that are put in the LaTeX
+ /*! This is used in references to page that are put in the LaTeX
* documentation. It should be an abbreviation of the word page.
*/
virtual QCString trPageAbbreviation()
@@ -876,7 +878,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
/*! header that is put before the list of constructor/destructors. */
virtual QCString trConstructorDocumentation()
{
- return "«Øºc¤l»P¸Ñºc¤l»¡©ú¤å¥ó";
+ return "«Øºc¤l»P¸Ñºc¤l»¡©ú¤å¥ó";
}
/*! Used in the file documentation to point to the corresponding sources. */
virtual QCString trGotoSourceCode()
@@ -933,7 +935,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
//////////////////////////////////////////////////////////////////////////
// new since 1.1.0
//////////////////////////////////////////////////////////////////////////
-
+
virtual QCString trNote()
{
return "µù";
@@ -1022,7 +1024,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
{
return "¦Û";
}
-
+
//////////////////////////////////////////////////////////////////////////
// new since 1.1.5
//////////////////////////////////////////////////////////////////////////
@@ -1032,12 +1034,12 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
{
return "¹Ï¥Ü";
}
- /*! page explaining how the dot graph's should be interpreted
+ /*! page explaining how the dot graph's should be interpreted
* The %A in the text below are to prevent link to classes called "A".
*/
virtual QCString trLegendDocs()
{
- return
+ return
"¥»­¶¸ÑÄÀ¦p¦ó¸ÑĶ³o¨Ç¥Ñdoxygen©Ò²£¥Íªº¹Ï¥Ü "
".<p>\n"
"½Ð¬Ý¤U­±½d¨Ò:\n"
@@ -1102,11 +1104,11 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
{
return "¹Ï¥Ü";
}
-
+
//////////////////////////////////////////////////////////////////////////
// new since 1.2.0
//////////////////////////////////////////////////////////////////////////
-
+
/*! Used as a marker that is put before a test item */
virtual QCString trTest()
{
@@ -1194,11 +1196,11 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
{
return "¥¨¶°¤º®e:";
}
-
+
//////////////////////////////////////////////////////////////////////////
// new since 1.2.5
//////////////////////////////////////////////////////////////////////////
-
+
/*! Used as a marker that is put before a \\bug item */
virtual QCString trBug()
{
@@ -1214,9 +1216,9 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
// new since 1.2.6
//////////////////////////////////////////////////////////////////////////
- /*! Used as ansicpg for RTF file
- *
- * The following table shows the correlation of Charset name, Charset Value and
+ /*! Used as ansicpg for RTF file
+ *
+ * The following table shows the correlation of Charset name, Charset Value and
* <pre>
* Codepage number:
* Charset Name Charset Value(hex) Codepage number
@@ -1237,15 +1239,15 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
* GB2313_CHARSET 134 (x86) 936
* CHINESEBIG5_CHARSET 136 (x88) 950
* </pre>
- *
+ *
*/
virtual QCString trRTFansicp()
{
return "950";
}
-
- /*! Used as ansicpg for RTF fcharset
+
+ /*! Used as ansicpg for RTF fcharset
* \see trRTFansicp() for a table of possible values.
*/
virtual QCString trRTFCharSet()
@@ -1258,76 +1260,76 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
{
return "¯Á¤Þ";
}
-
+
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trClass(bool /*first_capital*/, bool /*singular*/)
- {
+ {
return QCString("Ãþ§O");
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trFile(bool /*first_capital*/, bool /*singular*/)
- {
+ {
return QCString("ÀÉ®×");
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trNamespace(bool /*first_capital*/, bool /*singular*/)
- {
+ {
return QCString("©R¦WªÅ¶¡");
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trGroup(bool /*first_capital*/, bool /*singular*/)
- {
+ {
return QCString("¸s²Õ");
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trPage(bool /*first_capital*/, bool /*singular*/)
- {
+ {
return QCString("­¶­±");
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trMember(bool /*first_capital*/, bool /*singular*/)
- {
+ {
return QCString("¦¨­û");
}
-
+
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trField(bool /*first_capital*/, bool /*singular*/)
- {
+ {
return QCString("Äæ¦ì");
}
/*! This is used for translation of the word that will possibly
- * be followed by a single name or by a list of names
+ * be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trGlobal(bool /*first_capital*/, bool /*singular*/)
- {
+ {
return QCString("¥þ°ì");
}
@@ -1338,7 +1340,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
/*! This text is generated when the \\author command is used and
* for the author section in man pages. */
virtual QCString trAuthor(bool /*first_capital*/, bool /*singular*/)
- {
+ {
return QCString("§@ªÌ");
}
@@ -1357,7 +1359,7 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
// new since 1.2.13
//////////////////////////////////////////////////////////////////////////
- /*! used in member documentation blocks to produce a list of
+ /*! used in member documentation blocks to produce a list of
* members that are implemented by this one.
*/
virtual QCString trImplementedFromList(int numEntries)
@@ -1373,6 +1375,103 @@ class TranslatorChinesetraditional : public TranslatorAdapter_1_2_16
return "¹ê§@©ó "+trWriteList(numEntries)+".";
}
+ //////////////////////////////////////////////////////////////////////////
+// new since 1.2.16
+//////////////////////////////////////////////////////////////////////////
+
+ /*! used in RTF documentation as a heading for the Table
+ * of Contents.
+ */
+ virtual QCString trRTFTableOfContents()
+ {
+ return "¥Ø¿ý";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.17
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as the header of the list of item that have been
+ * flagged deprecated
+ */
+ virtual QCString trDeprecatedList()
+ {
+ return "¹L®É¶µ¥Ø(Deprecated) ¦Cªí";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.2.18
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a header for declaration section of the events found in
+ * a C# program
+ */
+ virtual QCString trEvents()
+ {
+ return "Events";
+ }
+ /*! Header used for the documentation section of a class' events. */
+ virtual QCString trEventDocumentation()
+ {
+ return "Event ¤å¥ó";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used as a heading for a list of Java class types with package scope.
+ */
+ virtual QCString trPackageTypes()
+ {
+ return "Package «¬§O";
+ }
+ /*! Used as a heading for a list of Java class functions with package
+ * scope.
+ */
+ virtual QCString trPackageMembers()
+ {
+ return "Package ¨ç¼Æ¦Cªí";
+ }
+ /*! Used as a heading for a list of static Java class functions with
+ * package scope.
+ */
+ virtual QCString trStaticPackageMembers()
+ {
+ return "ÀRºA Package ¨ç¼Æ¦Cªí";
+ }
+ /*! Used as a heading for a list of Java class variables with package
+ * scope.
+ */
+ virtual QCString trPackageAttribs()
+ {
+ return "Package ÄÝ©Ê";
+ }
+ /*! Used as a heading for a list of static Java class variables with
+ * package scope.
+ */
+ virtual QCString trStaticPackageAttribs()
+ {
+ return "ÀRºA Package ÄÝ©Ê";
+ }
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used in the quick index of a class/file/namespace member list page
+ * to link to the unfiltered list of all members.
+ */
+ virtual QCString trAll()
+ {
+ return "¥þ³¡";
+ }
+ /*! Put in front of the call graph for a function. */
+ virtual QCString trCallGraph()
+ {
+ return "³o¬O¦¹¨ç¼Æªº¤Þ¥Î¨ç¼Æ¹Ï:";
+ }
+
};
#endif
diff --git a/src/util.h b/src/util.h
index daa1bb4..b92279d 100644
--- a/src/util.h
+++ b/src/util.h
@@ -48,7 +48,7 @@ struct TagInfo;
class MemberNameInfoSDict;
struct ListItemInfo;
class PageDef;
-class SectionInfo;
+struct SectionInfo;
//--------------------------------------------------------------------
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 2f58fd4..f2f669e 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -54,6 +54,12 @@ static const char index_xsd[] =
;
//------------------
+//
+static const char compound_xsd[] =
+#include "compound_xsd.h"
+;
+
+//------------------
inline void writeXMLString(QTextStream &t,const char *s)
@@ -82,22 +88,28 @@ inline void writeXMLCodeString(QTextStream &t,const char *s)
static void writeXMLHeader(QTextStream &t)
{
- QCString dtdName = Config_getString("XML_DTD");
- QCString schemaName = Config_getString("XML_SCHEMA");
+ //QCString dtdName = Config_getString("XML_DTD");
+ //QCString schemaName = Config_getString("XML_SCHEMA");
+ //t << "<?xml version='1.0' encoding='" << theTranslator->idLanguageCharset()
+ // << "' standalone='";
+ //if (dtdName.isEmpty() && schemaName.isEmpty()) t << "yes"; else t << "no";
+ //t << "'?>" << endl;
+ //if (!dtdName.isEmpty())
+ //{
+ // t << "<!DOCTYPE doxygen SYSTEM \"doxygen.dtd\">" << endl;
+ //}
+ //t << "<doxygen ";
+ //if (!schemaName.isEmpty())
+ //{
+ // t << "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ";
+ // t << "xsi:noNamespaceSchemaLocation=\"doxygen.xsd\" ";
+ //}
+ //t << "version=\"" << versionString << "\">" << endl;
+
t << "<?xml version='1.0' encoding='" << theTranslator->idLanguageCharset()
- << "' standalone='";
- if (dtdName.isEmpty() && schemaName.isEmpty()) t << "yes"; else t << "no";
- t << "'?>" << endl;
- if (!dtdName.isEmpty())
- {
- t << "<!DOCTYPE doxygen SYSTEM \"doxygen.dtd\">" << endl;
- }
- t << "<doxygen ";
- if (!schemaName.isEmpty())
- {
- t << "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ";
- t << "xsi:noNamespaceSchemaLocation=\"doxygen.xsd\" ";
- }
+ << "' standalone='no'?>" << endl;;
+ t << "<doxygen xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ";
+ t << "xsi:noNamespaceSchemaLocation=\"compound.xsd\" ";
t << "version=\"" << versionString << "\">" << endl;
}
@@ -422,7 +434,7 @@ static void writeMemberReference(QTextStream &t,Definition *def,MemberDef *rmd,c
{
name.prepend(scope+"::");
}
- t << " <" << tagName << " id=\"";
+ t << " <" << tagName << " refid=\"";
t << rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\"";
if (rmd->getStartBodyLine()!=-1 && rmd->getBodyDef())
{
@@ -529,7 +541,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
t << "\" virt=\"";
switch (md->virtualness())
{
- case Normal: t << "normal"; break;
+ case Normal: t << "non-virtual"; break;
case Virtual: t << "virtual"; break;
case Pure: t << "pure-virtual"; break;
default: ASSERT(0);
@@ -544,8 +556,8 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
t << " volatile=\"";
if (al && al->volatileSpecifier) t << "yes"; else t << "no";
- t << "\" mutable=\"";
- if (md->isMutable()) t << "yes"; else t << "no";
+ t << "\" mutable=\"";
+ if (md->isMutable()) t << "yes"; else t << "no";
t << "\"";
}
@@ -572,9 +584,9 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
MemberDef *rmd = md->reimplements();
if (rmd)
{
- t << " <reimplements id=\""
+ t << " <reimplements refid=\""
<< rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">"
- << convertToXML(rmd->name()) << "</reimplements>";
+ << convertToXML(rmd->name()) << "</reimplements>" << endl;
}
MemberList *rbml = md->reimplementedBy();
if (rbml)
@@ -582,9 +594,9 @@ static void generateXMLForMember(MemberDef *md,QTextStream &ti,QTextStream &t,De
MemberListIterator mli(*rbml);
for (mli.toFirst();(rmd=mli.current());++mli)
{
- t << " <reimplementedby id=\""
+ t << " <reimplementedby refid=\""
<< rmd->getOutputFileBase() << "_1" << rmd->anchor() << "\">"
- << convertToXML(rmd->name()) << "</reimplementedby>";
+ << convertToXML(rmd->name()) << "</reimplementedby>" << endl;
}
}
@@ -919,18 +931,6 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
}
}
- ClassSDict *cl = cd->getInnerClasses();
- if (cl)
- {
- ClassSDict::Iterator cli(*cl);
- ClassDef *cd;
- for (cli.toFirst();(cd=cli.current());++cli)
- {
- t << " <innerclass refid=\"" << cd->getOutputFileBase()
- << "\">" << convertToXML(cd->name()) << "</innerclass>" << endl;
- }
- }
-
IncludeInfo *ii=cd->includeInfo();
if (ii)
{
@@ -941,7 +941,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
t << " <includes";
if (ii->fileDef && !ii->fileDef->isReference()) // TODO: support external references
{
- t << " id=\"" << ii->fileDef->getOutputFileBase() << "\"";
+ t << " refid=\"" << ii->fileDef->getOutputFileBase() << "\"";
}
t << " local=\"" << (ii->local ? "yes" : "no") << "\">";
t << nm;
@@ -949,8 +949,20 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
}
}
+ ClassSDict *cl = cd->getInnerClasses();
+ if (cl)
+ {
+ ClassSDict::Iterator cli(*cl);
+ ClassDef *cd;
+ for (cli.toFirst();(cd=cli.current());++cli)
+ {
+ t << " <innerclass refid=\"" << cd->getOutputFileBase()
+ << "\">" << convertToXML(cd->name()) << "</innerclass>" << endl;
+ }
+ }
+
+
writeTemplateList(cd,t);
- writeListOfAllMembers(cd,t);
MemberGroupSDict::Iterator mgli(*cd->memberGroupSDict);
MemberGroup *mg;
for (;(mg=mgli.current());++mgli)
@@ -1014,6 +1026,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &ti)
<< cd->getEndBodyLine() << "\"";
}
t << "/>" << endl;
+ writeListOfAllMembers(cd,t);
t << " </compounddef>" << endl;
t << "</doxygen>" << endl;
@@ -1153,7 +1166,7 @@ static void generateXMLForFile(FileDef *fd,QTextStream &ti)
t << " <includes";
if (inc->fileDef && !inc->fileDef->isReference()) // TODO: support external references
{
- t << " id=\"" << inc->fileDef->getOutputFileBase() << "\"";
+ t << " refid=\"" << inc->fileDef->getOutputFileBase() << "\"";
}
t << " local=\"" << (inc->local ? "yes" : "no") << "\">";
t << inc->includeName;
@@ -1166,7 +1179,7 @@ static void generateXMLForFile(FileDef *fd,QTextStream &ti)
t << " <includedby";
if (inc->fileDef && !inc->fileDef->isReference()) // TODO: support external references
{
- t << " id=\"" << inc->fileDef->getOutputFileBase() << "\"";
+ t << " refid=\"" << inc->fileDef->getOutputFileBase() << "\"";
}
t << " local=\"" << (inc->local ? "yes" : "no") << "\">";
t << inc->includeName;
@@ -1466,6 +1479,16 @@ void generateXML()
f.writeBlock(index_xsd,strlen(index_xsd));
f.close();
+ fileName=outputDirectory+"/compound.xsd";
+ f.setName(fileName);
+ if (!f.open(IO_WriteOnly))
+ {
+ err("Cannot open file %s for writing!\n",fileName.data());
+ return;
+ }
+ f.writeBlock(compound_xsd,strlen(compound_xsd));
+ f.close();
+
fileName=outputDirectory+"/index.xml";
f.setName(fileName);
if (!f.open(IO_WriteOnly))
@@ -1479,7 +1502,7 @@ void generateXML()
// write index header
t << "<?xml version='1.0' encoding='" << theTranslator->idLanguageCharset()
<< "' standalone='no'?>" << endl;;
- t << "<doxygen xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ";
+ t << "<doxygenindex xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ";
t << "xsi:noNamespaceSchemaLocation=\"index.xsd\" ";
t << "version=\"" << versionString << "\">" << endl;
@@ -1487,12 +1510,14 @@ void generateXML()
ClassDef *cd;
for (cli.toFirst();(cd=cli.current());++cli)
{
+ msg("Generating XML output for class %s\n",cd->name().data());
generateXMLForClass(cd,t);
}
NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);
NamespaceDef *nd;
for (nli.toFirst();(nd=nli.current());++nli)
{
+ msg("Generating XML output for namespace %s\n",nd->name().data());
generateXMLForNamespace(nd,t);
}
FileNameListIterator fnli(Doxygen::inputNameList);
@@ -1503,6 +1528,7 @@ void generateXML()
FileDef *fd;
for (;(fd=fni.current());++fni)
{
+ msg("Generating XML output for file %s\n",fd->name().data());
generateXMLForFile(fd,t);
}
}
@@ -1510,21 +1536,24 @@ void generateXML()
GroupDef *gd;
for (;(gd=gli.current());++gli)
{
+ msg("Generating XML output for group %s\n",gd->name().data());
generateXMLForGroup(gd,t);
}
PageSDict::Iterator pdi(*Doxygen::pageSDict);
PageDef *pd=0;
for (pdi.toFirst();(pd=pdi.current());++pdi)
{
+ msg("Generating XML output for page %s\n",pd->name().data());
generateXMLForPage(pd,t);
}
if (Doxygen::mainPage)
{
+ msg("Generating XML output for the main page\n");
generateXMLForPage(Doxygen::mainPage,t);
}
//t << " </compoundlist>" << endl;
- t << "</doxygen>" << endl;
+ t << "</doxygenindex>" << endl;
}