summaryrefslogtreecommitdiffstats
path: root/src/tagreader.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2013-05-12 13:04:34 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2013-05-12 13:04:34 (GMT)
commit8dc4ff6dd22b1603f33537ff03994cc63e658768 (patch)
tree97f0e23b93d45b7917d965e6d1bb70da6c61831a /src/tagreader.cpp
parentebf4b3641c9149eaf4468aa8df64e1c7517e5f0c (diff)
downloadDoxygen-8dc4ff6dd22b1603f33537ff03994cc63e658768.zip
Doxygen-8dc4ff6dd22b1603f33537ff03994cc63e658768.tar.gz
Doxygen-8dc4ff6dd22b1603f33537ff03994cc63e658768.tar.bz2
Release-1.8.3.1-20130512
Diffstat (limited to 'src/tagreader.cpp')
-rw-r--r--src/tagreader.cpp80
1 files changed, 55 insertions, 25 deletions
diff --git a/src/tagreader.cpp b/src/tagreader.cpp
index 8739c99..8b59c05 100644
--- a/src/tagreader.cpp
+++ b/src/tagreader.cpp
@@ -72,6 +72,7 @@ class TagMemberInfo
QCString anchor;
QCString arglist;
QCString kind;
+ QCString clangId;
TagAnchorInfoList docAnchors;
Protection prot;
Specifier virt;
@@ -87,6 +88,7 @@ class TagClassInfo
~TagClassInfo() { delete bases; delete templateArguments; }
QCString name;
QCString filename;
+ QCString clangId;
TagAnchorInfoList docAnchors;
QList<BaseInfo> *bases;
QList<TagMemberInfo> members;
@@ -103,6 +105,7 @@ class TagNamespaceInfo
TagNamespaceInfo() { members.setAutoDelete(TRUE); }
QCString name;
QCString filename;
+ QCString clangId;
QStringList classList;
QStringList namespaceList;
TagAnchorInfoList docAnchors;
@@ -335,7 +338,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unknown compound attribute `%s' found!\n",kind.data());
+ warn("Unknown compound attribute `%s' found!\n",kind.data());
m_state = Invalid;
}
if (isObjC=="yes" && m_curClass)
@@ -363,7 +366,7 @@ class TagFileParser : public QXmlDefaultHandler
case InPackage: m_tagFilePackages.append(m_curPackage);
m_curPackage=0; break;
default:
- warn("warning: tag `compound' was not expected!\n");
+ warn("tag `compound' was not expected!\n");
}
}
@@ -409,7 +412,7 @@ class TagFileParser : public QXmlDefaultHandler
case InNamespace: m_curNamespace->members.append(m_curMember); break;
case InGroup: m_curGroup->members.append(m_curMember); break;
case InPackage: m_curPackage->members.append(m_curMember); break;
- default: warn("warning: Unexpected tag `member' found\n"); break;
+ default: warn("Unexpected tag `member' found\n"); break;
}
}
@@ -425,7 +428,7 @@ class TagFileParser : public QXmlDefaultHandler
case InMember: m_curMember->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString)); break;
case InPackage: m_curPackage->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString)); break;
case InDir: m_curDir->docAnchors.append(new TagAnchorInfo(m_fileName,m_curString)); break;
- default: warn("warning: Unexpected tag `member' found\n"); break;
+ default: warn("Unexpected tag `member' found\n"); break;
}
}
@@ -438,7 +441,7 @@ class TagFileParser : public QXmlDefaultHandler
case InNamespace: m_curNamespace->classList.append(m_curString); break;
case InGroup: m_curGroup->classList.append(m_curString); break;
case InPackage: m_curPackage->classList.append(m_curString); break;
- default: warn("warning: Unexpected tag `class' found\n"); break;
+ default: warn("Unexpected tag `class' found\n"); break;
}
}
@@ -449,7 +452,7 @@ class TagFileParser : public QXmlDefaultHandler
case InNamespace: m_curNamespace->classList.append(m_curString); break;
case InFile: m_curFile->namespaceList.append(m_curString); break;
case InGroup: m_curGroup->namespaceList.append(m_curString); break;
- default: warn("warning: Unexpected tag `namespace' found\n"); break;
+ default: warn("Unexpected tag `namespace' found\n"); break;
}
}
@@ -459,7 +462,7 @@ class TagFileParser : public QXmlDefaultHandler
{
case InGroup: m_curGroup->fileList.append(m_curString); break;
case InDir: m_curDir->fileList.append(m_curString); break;
- default: warn("warning: Unexpected tag `file' found\n"); break;
+ default: warn("Unexpected tag `file' found\n"); break;
}
}
@@ -468,7 +471,7 @@ class TagFileParser : public QXmlDefaultHandler
switch(m_state)
{
case InGroup: m_curGroup->fileList.append(m_curString); break;
- default: warn("warning: Unexpected tag `page' found\n"); break;
+ default: warn("Unexpected tag `page' found\n"); break;
}
}
@@ -477,7 +480,7 @@ class TagFileParser : public QXmlDefaultHandler
switch(m_state)
{
case InDir: m_curDir->subdirList.append(m_curString); break;
- default: warn("warning: Unexpected tag `page' found\n"); break;
+ default: warn("Unexpected tag `page' found\n"); break;
}
}
@@ -501,7 +504,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unexpected tag `type' found\n");
+ warn("Unexpected tag `type' found\n");
}
}
@@ -517,7 +520,7 @@ class TagFileParser : public QXmlDefaultHandler
case InDir: m_curDir->name = m_curString; break;
case InMember: m_curMember->name = m_curString; break;
case InPackage: m_curPackage->name = m_curString; break;
- default: warn("warning: Unexpected tag `name' found\n"); break;
+ default: warn("Unexpected tag `name' found\n"); break;
}
}
@@ -551,7 +554,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unexpected tag `base' found\n");
+ warn("Unexpected tag `base' found\n");
}
}
@@ -563,7 +566,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unexpected tag `base' found\n");
+ warn("Unexpected tag `base' found\n");
}
}
@@ -580,7 +583,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unexpected tag `includes' found\n");
+ warn("Unexpected tag `includes' found\n");
}
m_curString="";
}
@@ -603,7 +606,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unexpected tag `templarg' found\n");
+ warn("Unexpected tag `templarg' found\n");
}
}
@@ -618,7 +621,7 @@ class TagFileParser : public QXmlDefaultHandler
case InPage: m_curPage->filename = m_curString; break;
case InPackage: m_curPackage->filename = m_curString; break;
case InDir: m_curDir->filename = m_curString; break;
- default: warn("warning: Unexpected tag `filename' found\n"); break;
+ default: warn("Unexpected tag `filename' found\n"); break;
}
}
@@ -628,7 +631,7 @@ class TagFileParser : public QXmlDefaultHandler
{
case InFile: m_curFile->path = m_curString; break;
case InDir: m_curDir->path = m_curString; break;
- default: warn("warning: Unexpected tag `path' found\n"); break;
+ default: warn("Unexpected tag `path' found\n"); break;
}
}
@@ -640,9 +643,31 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
+ warn("Unexpected tag `anchor' found\n");
+ }
+ }
+
+ void endClangId()
+ {
+ if (m_state==InMember)
+ {
+ m_curMember->clangId = m_curString;
+ }
+ else if (m_state==InClass)
+ {
+ m_curClass->clangId = m_curString;
+ }
+ else if (m_state==InNamespace)
+ {
+ m_curNamespace->clangId = m_curString;
+ }
+ else
+ {
warn("warning: Unexpected tag `anchor' found\n");
}
}
+
+
void endAnchorFile()
{
@@ -652,7 +677,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unexpected tag `anchorfile' found\n");
+ warn("Unexpected tag `anchorfile' found\n");
}
}
@@ -664,7 +689,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unexpected tag `arglist' found\n");
+ warn("Unexpected tag `arglist' found\n");
}
}
void endTitle()
@@ -673,7 +698,7 @@ class TagFileParser : public QXmlDefaultHandler
{
case InGroup: m_curGroup->title = m_curString; break;
case InPage: m_curPage->title = m_curString; break;
- default: warn("warning: Unexpected tag `title' found\n"); break;
+ default: warn("Unexpected tag `title' found\n"); break;
}
}
@@ -685,7 +710,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unexpected tag `subgroup' found\n");
+ warn("Unexpected tag `subgroup' found\n");
}
}
@@ -727,6 +752,7 @@ class TagFileParser : public QXmlDefaultHandler
m_startElementHandlers.insert("path", new StartElementHandler(this,&TagFileParser::startStringValue));
m_startElementHandlers.insert("anchorfile", new StartElementHandler(this,&TagFileParser::startStringValue));
m_startElementHandlers.insert("anchor", new StartElementHandler(this,&TagFileParser::startStringValue));
+ m_startElementHandlers.insert("clangid", new StartElementHandler(this,&TagFileParser::startStringValue));
m_startElementHandlers.insert("arglist", new StartElementHandler(this,&TagFileParser::startStringValue));
m_startElementHandlers.insert("title", new StartElementHandler(this,&TagFileParser::startStringValue));
m_startElementHandlers.insert("subgroup", new StartElementHandler(this,&TagFileParser::startStringValue));
@@ -749,6 +775,7 @@ class TagFileParser : public QXmlDefaultHandler
m_endElementHandlers.insert("path", new EndElementHandler(this,&TagFileParser::endPath));
m_endElementHandlers.insert("anchorfile", new EndElementHandler(this,&TagFileParser::endAnchorFile));
m_endElementHandlers.insert("anchor", new EndElementHandler(this,&TagFileParser::endAnchor));
+ m_endElementHandlers.insert("clangid", new EndElementHandler(this,&TagFileParser::endClangId));
m_endElementHandlers.insert("arglist", new EndElementHandler(this,&TagFileParser::endArglist));
m_endElementHandlers.insert("title", new EndElementHandler(this,&TagFileParser::endTitle));
m_endElementHandlers.insert("subgroup", new EndElementHandler(this,&TagFileParser::endSubgroup));
@@ -776,7 +803,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unknown tag `%s' found!\n",name.data());
+ warn("Unknown tag `%s' found!\n",name.data());
}
return TRUE;
}
@@ -791,7 +818,7 @@ class TagFileParser : public QXmlDefaultHandler
}
else
{
- warn("warning: Unknown tag `%s' found!\n",name.data());
+ warn("Unknown tag `%s' found!\n",name.data());
}
return TRUE;
}
@@ -1079,6 +1106,7 @@ void TagFileParser::buildMemberList(Entry *ce,QList<TagMemberInfo> &members)
me->virt = tmi->virt;
me->stat = tmi->isStatic;
me->fileName = ce->fileName;
+ me->id = tmi->clangId;
if (ce->section == Entry::GROUPDOC_SEC)
{
me->groups->append(new Grouping(ce->name,Grouping::GROUPING_INGROUP));
@@ -1204,8 +1232,9 @@ void TagFileParser::buildLists(Entry *root)
TagInfo *ti = new TagInfo;
ti->tagName = m_tagName;
ti->fileName = tci->filename;
- ce->tagInfo = ti;
- ce->lang = tci->isObjC ? SrcLangExt_ObjC : SrcLangExt_Unknown;
+ ce->id = tci->clangId;
+ ce->tagInfo = ti;
+ ce->lang = tci->isObjC ? SrcLangExt_ObjC : SrcLangExt_Unknown;
// transfer base class list
if (tci->bases)
{
@@ -1286,6 +1315,7 @@ void TagFileParser::buildLists(Entry *root)
TagInfo *ti = new TagInfo;
ti->tagName = m_tagName;
ti->fileName = tni->filename;
+ ne->id = tni->clangId;
ne->tagInfo = ti;
buildMemberList(ne,tni->members);