summaryrefslogtreecommitdiffstats
path: root/src/tagreader.cpp
diff options
context:
space:
mode:
authordimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2004-02-22 19:57:25 (GMT)
committerdimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7>2004-02-22 19:57:25 (GMT)
commit5edb3c85109d09e5fa43529bf8b584382f7501a5 (patch)
treebb6a2ec7453702ed2fe2348793b0bddf5d80042a /src/tagreader.cpp
parenta9b8e48237d4094095b91031ac7c9fb0f4cc028e (diff)
downloadDoxygen-5edb3c85109d09e5fa43529bf8b584382f7501a5.zip
Doxygen-5edb3c85109d09e5fa43529bf8b584382f7501a5.tar.gz
Doxygen-5edb3c85109d09e5fa43529bf8b584382f7501a5.tar.bz2
Release-1.3.6-20040222
Diffstat (limited to 'src/tagreader.cpp')
-rw-r--r--src/tagreader.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/tagreader.cpp b/src/tagreader.cpp
index 6301305..f3b5ee8 100644
--- a/src/tagreader.cpp
+++ b/src/tagreader.cpp
@@ -55,8 +55,8 @@ class TagMemberInfo
class TagClassInfo
{
public:
- enum Kind { Class, Struct, Union, Interface, Exception };
- TagClassInfo() { bases=0, templateArguments=0; members.setAutoDelete(TRUE); }
+ enum Kind { Class, Struct, Union, Interface, Exception, Protocol, Category };
+ TagClassInfo() { bases=0, templateArguments=0; members.setAutoDelete(TRUE); isObjC=FALSE; }
~TagClassInfo() { delete bases; delete templateArguments; }
QString name;
QString filename;
@@ -65,6 +65,7 @@ class TagClassInfo
QList<TagMemberInfo> members;
QList<QString> *templateArguments;
Kind kind;
+ bool isObjC;
};
/*! Container for namespace specific info that can be read from a tagfile */
@@ -194,6 +195,7 @@ class TagFileParser : public QXmlDefaultHandler
{
m_curString = "";
QString kind = attrib.value("kind");
+ QString isObjC = attrib.value("objc");
if (kind=="class")
{
m_curClass = new TagClassInfo;
@@ -224,6 +226,18 @@ class TagFileParser : public QXmlDefaultHandler
m_curClass->kind = TagClassInfo::Exception;
m_state = InClass;
}
+ else if (kind=="protocol")
+ {
+ m_curClass = new TagClassInfo;
+ m_curClass->kind = TagClassInfo::Protocol;
+ m_state = InClass;
+ }
+ else if (kind=="category")
+ {
+ m_curClass = new TagClassInfo;
+ m_curClass->kind = TagClassInfo::Category;
+ m_state = InClass;
+ }
else if (kind=="file")
{
m_curFile = new TagFileInfo;
@@ -253,6 +267,10 @@ class TagFileParser : public QXmlDefaultHandler
{
err("Error: Unknown compound attribute `%s' found!\n",kind.data());
}
+ if (isObjC=="yes" && m_curClass)
+ {
+ m_curClass->isObjC = TRUE;
+ }
}
void endCompound()
{
@@ -1004,6 +1022,8 @@ void TagFileParser::buildLists(Entry *root)
case TagClassInfo::Union: ce->section = Entry::UNION_SEC; break;
case TagClassInfo::Interface: ce->section = Entry::INTERFACE_SEC; break;
case TagClassInfo::Exception: ce->section = Entry::EXCEPTION_SEC; break;
+ case TagClassInfo::Protocol: ce->section = Entry::PROTOCOL_SEC; break;
+ case TagClassInfo::Category: ce->section = Entry::CATEGORY_SEC; break;
}
ce->name = tci->name;
addDocAnchors(ce,tci->docAnchors);
@@ -1011,6 +1031,7 @@ void TagFileParser::buildLists(Entry *root)
ti->tagName = m_tagName;
ti->fileName = tci->filename;
ce->tagInfo = ti;
+ ce->objc = tci->isObjC;
// transfer base class list
if (tci->bases)
{