summaryrefslogtreecommitdiffstats
path: root/src/docparser.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2012-11-18 21:43:28 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2012-11-18 21:43:28 (GMT)
commitfee4053bd3dd075a2dd2cba4da8166ec5307eadd (patch)
tree94365b932426de715b3a479094b7056e0c4f878b /src/docparser.cpp
parentceb4115c7b941039411e1793e01239610ff112a2 (diff)
downloadDoxygen-fee4053bd3dd075a2dd2cba4da8166ec5307eadd.zip
Doxygen-fee4053bd3dd075a2dd2cba4da8166ec5307eadd.tar.gz
Doxygen-fee4053bd3dd075a2dd2cba4da8166ec5307eadd.tar.bz2
Release-1.8.2-20121118
Diffstat (limited to 'src/docparser.cpp')
-rw-r--r--src/docparser.cpp79
1 files changed, 71 insertions, 8 deletions
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 02153f6..c4f42f3 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -31,7 +31,6 @@
#include "debug.h"
#include "util.h"
#include "pagedef.h"
-
#include "docparser.h"
#include "doctokenizer.h"
#include "cmdmapper.h"
@@ -44,6 +43,14 @@
#include "cite.h"
#include "arguments.h"
#include "vhdldocgen.h"
+#include "groupdef.h"
+#include "classlist.h"
+#include "filedef.h"
+#include "memberdef.h"
+#include "namespacedef.h"
+#include "reflist.h"
+#include "formula.h"
+#include "config.h"
// debug off
#define DBG(x) do {} while(0)
@@ -271,7 +278,7 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type)
outImage.writeBlock(buffer,inImage.size());
outImage.flush();
delete[] buffer;
- if (type==DocImage::Html) Doxygen::indexList.addImageFile(result);
+ if (type==DocImage::Html) Doxygen::indexList->addImageFile(result);
}
else
{
@@ -1789,7 +1796,7 @@ DocAnchor::DocAnchor(DocNode *parent,const QCString &id,bool newAnchor)
}
else // found \anchor label
{
- SectionInfo *sec = Doxygen::sectionDict[id];
+ SectionInfo *sec = Doxygen::sectionDict->find(id);
if (sec)
{
//printf("Found anchor %s\n",id.data());
@@ -2134,7 +2141,7 @@ DocFormula::DocFormula(DocNode *parent,int id) :
m_parent = parent;
QCString formCmd;
formCmd.sprintf("\\form#%d",id);
- Formula *formula=Doxygen::formulaNameDict[formCmd];
+ Formula *formula=Doxygen::formulaNameDict->find(formCmd);
if (formula)
{
m_id = formula->getId();
@@ -2206,7 +2213,7 @@ void DocSecRefItem::parse()
SectionInfo *sec=0;
if (!m_target.isEmpty())
{
- sec=Doxygen::sectionDict[m_target];
+ sec=Doxygen::sectionDict->find(m_target);
if (sec)
{
m_file = sec->fileName;
@@ -2360,7 +2367,7 @@ DocRef::DocRef(DocNode *parent,const QCString &target,const QCString &context) :
//printf("DocRef::DocRef(target=%s,context=%s)\n",target.data(),context.data());
ASSERT(!target.isEmpty());
m_relPath = g_relPath;
- SectionInfo *sec = Doxygen::sectionDict[target];
+ SectionInfo *sec = Doxygen::sectionDict->find(target);
if (sec) // ref to section or anchor
{
PageDef *pd = 0;
@@ -2827,6 +2834,52 @@ void DocMscFile::parse()
ASSERT(n==this);
}
+//---------------------------------------------------------------------------
+
+DocVhdlFlow::DocVhdlFlow(DocNode *parent)
+{
+ m_parent = parent;
+}
+
+void DocVhdlFlow::parse()
+{
+ g_nodeStack.push(this);
+ DBG(("DocVhdlFlow::parse() start\n"));
+
+ doctokenizerYYsetStateTitle();
+ int tok;
+ while ((tok=doctokenizerYYlex()))
+ {
+ if (!defaultHandleToken(this,tok,m_children))
+ {
+ switch (tok)
+ {
+ case TK_COMMAND:
+ warn_doc_error(g_fileName,doctokenizerYYlineno,"warning: Illegal command %s as part of a \\mscfile",
+ qPrint(g_token->name));
+ break;
+ case TK_SYMBOL:
+ warn_doc_error(g_fileName,doctokenizerYYlineno,"warning: Unsupported symbol %s found",
+ qPrint(g_token->name));
+ break;
+ default:
+ warn_doc_error(g_fileName,doctokenizerYYlineno,"warning: Unexpected token %s",
+ tokToString(tok));
+ break;
+ }
+ }
+ }
+ tok=doctokenizerYYlex();
+
+ doctokenizerYYsetStatePara();
+ handlePendingStyleCommands(this,m_children);
+
+ DBG(("DocVhdlFlow::parse() end\n"));
+ DocNode *n=g_nodeStack.pop();
+ ASSERT(n==this);
+
+ VhdlDocGen::createFlowChart(g_memberDef);
+}
//---------------------------------------------------------------------------
@@ -4986,6 +5039,13 @@ void DocPara::handleMscFile(const QCString &cmdName)
df->parse();
}
+void DocPara::handleVhdlFlow()
+{
+ DocVhdlFlow *vf = new DocVhdlFlow(this);
+ m_children.append(vf);
+ vf->parse();
+}
+
void DocPara::handleLink(const QCString &cmdName,bool isJavaLink)
{
int tok=doctokenizerYYlex();
@@ -5527,6 +5587,9 @@ int DocPara::handleCommand(const QCString &cmdName)
case CMD_DOTFILE:
handleDotFile(cmdName);
break;
+ case CMD_VHDLFLOW:
+ handleVhdlFlow();
+ break;
case CMD_MSCFILE:
handleMscFile(cmdName);
break;
@@ -6515,7 +6578,7 @@ int DocSection::parse()
SectionInfo *sec;
if (!m_id.isEmpty())
{
- sec=Doxygen::sectionDict[m_id];
+ sec=Doxygen::sectionDict->find(m_id);
if (sec)
{
m_file = sec->fileName;
@@ -6773,7 +6836,7 @@ void DocRoot::parse()
// then parse any number of level1 sections
while (retval==RetVal_Section)
{
- SectionInfo *sec=Doxygen::sectionDict[g_token->sectionId];
+ SectionInfo *sec=Doxygen::sectionDict->find(g_token->sectionId);
if (sec)
{
DocSection *s=new DocSection(this,