summaryrefslogtreecommitdiffstats
path: root/trunk/src/printdocvisitor.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/printdocvisitor.h')
-rw-r--r--trunk/src/printdocvisitor.h712
1 files changed, 0 insertions, 712 deletions
diff --git a/trunk/src/printdocvisitor.h b/trunk/src/printdocvisitor.h
deleted file mode 100644
index cd9ba7b..0000000
--- a/trunk/src/printdocvisitor.h
+++ /dev/null
@@ -1,712 +0,0 @@
-/******************************************************************************
- *
- *
- *
- *
- * Copyright (C) 1997-2012 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
- * 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.
- *
- */
-
-#ifndef _PRINTDOCVISITOR_H
-#define _PRINTDOCVISITOR_H
-
-#include "docvisitor.h"
-
-/*! Concrete visitor implementation for pretty printing */
-class PrintDocVisitor : public DocVisitor
-{
- public:
- PrintDocVisitor() : DocVisitor(DocVisitor_Other), m_indent(0),
- m_needsEnter(FALSE), m_insidePre(FALSE) {}
-
- //--------------------------------------
-
- void visit(DocWord *w)
- {
- indent_leaf();
- printf("%s",w->word().data());
- }
- void visit(DocLinkedWord *w)
- {
- indent_leaf();
- printf("%s",w->word().data());
- }
- void visit(DocWhiteSpace *w)
- {
- indent_leaf();
- if (m_insidePre)
- {
- printf("%s",w->chars().data());
- }
- else
- {
- printf(" ");
- }
- }
- void visit(DocSymbol *s)
- {
- indent_leaf();
- switch(s->symbol())
- {
- case DocSymbol::BSlash: printf("\\"); break;
- case DocSymbol::At: printf("@"); break;
- case DocSymbol::Less: printf("<"); break;
- case DocSymbol::Greater: printf(">"); break;
- case DocSymbol::Amp: printf("&"); break;
- case DocSymbol::Dollar: printf("$"); break;
- case DocSymbol::Hash: printf("#"); break;
- case DocSymbol::Percent: printf("%%"); break;
- case DocSymbol::Copy: printf("&copy;"); break;
- case DocSymbol::Apos: printf("'"); break;
- case DocSymbol::Quot: printf("\""); break;
- case DocSymbol::Lsquo: printf("&lsquo;"); break;
- case DocSymbol::Rsquo: printf("&rsquo;"); break;
- case DocSymbol::Ldquo: printf("&ldquo;"); break;
- case DocSymbol::Rdquo: printf("&rdquo;"); break;
- case DocSymbol::Ndash: printf("&ndash;"); break;
- case DocSymbol::Mdash: printf("&mdash;"); break;
- case DocSymbol::Uml: printf("&%cuml;",s->letter()); break;
- case DocSymbol::Acute: printf("&%cacute;",s->letter()); break;
- case DocSymbol::Grave: printf("&%cgrave;",s->letter()); break;
- case DocSymbol::Circ: printf("&%ccirc;",s->letter()); break;
- case DocSymbol::Tilde: printf("&%ctilde;",s->letter()); break;
- case DocSymbol::Szlig: printf("&szlig;"); break;
- case DocSymbol::Cedil: printf("&%ccedul;",s->letter()); break;
- case DocSymbol::Ring: printf("&%cring;",s->letter()); break;
- case DocSymbol::Nbsp: printf("&nbsp;"); break;
- case DocSymbol::Aelig: printf("&aelig;"); break;
- case DocSymbol::AElig: printf("&AElig;"); break;
- default:
- printf("Error: unknown symbol found\n");
- }
- }
- void visit(DocURL *u)
- {
- indent_leaf();
- printf("%s",u->url().data());
- }
- void visit(DocLineBreak *)
- {
- indent_leaf();
- printf("<br/>");
- }
- void visit(DocHorRuler *)
- {
- indent_leaf();
- printf("<hr>");
- }
- void visit(DocStyleChange *s)
- {
- indent_leaf();
- switch (s->style())
- {
- case DocStyleChange::Bold:
- if (s->enable()) printf("<bold>"); else printf("</bold>");
- break;
- case DocStyleChange::Italic:
- if (s->enable()) printf("<italic>"); else printf("</italic>");
- break;
- case DocStyleChange::Code:
- if (s->enable()) printf("<code>"); else printf("</code>");
- break;
- case DocStyleChange::Subscript:
- if (s->enable()) printf("<sub>"); else printf("</sub>");
- break;
- case DocStyleChange::Superscript:
- if (s->enable()) printf("<sup>"); else printf("</sup>");
- break;
- case DocStyleChange::Center:
- if (s->enable()) printf("<center>"); else printf("</center>");
- break;
- case DocStyleChange::Small:
- if (s->enable()) printf("<small>"); else printf("</small>");
- break;
- case DocStyleChange::Preformatted:
- if (s->enable()) printf("<pre>"); else printf("</pre>");
- break;
- case DocStyleChange::Div:
- if (s->enable()) printf("<div>"); else printf("</div>");
- break;
- case DocStyleChange::Span:
- if (s->enable()) printf("<span>"); else printf("</span>");
- break;
- }
- }
- void visit(DocVerbatim *s)
- {
- indent_leaf();
- switch(s->type())
- {
- case DocVerbatim::Code: printf("<code>"); break;
- case DocVerbatim::Verbatim: printf("<verbatim>"); break;
- case DocVerbatim::HtmlOnly: printf("<htmlonly>"); break;
- case DocVerbatim::ManOnly: printf("<manonly>"); break;
- case DocVerbatim::LatexOnly: printf("<latexonly>"); break;
- case DocVerbatim::XmlOnly: printf("<xmlonly>"); break;
- case DocVerbatim::Dot: printf("<dot>"); break;
- case DocVerbatim::Msc: printf("<msc>"); break;
- }
- printf("%s",s->text().data());
- switch(s->type())
- {
- case DocVerbatim::Code: printf("</code>"); break;
- case DocVerbatim::Verbatim: printf("</verbatim>"); break;
- case DocVerbatim::HtmlOnly: printf("</htmlonly>"); break;
- case DocVerbatim::ManOnly: printf("</manonly>"); break;
- case DocVerbatim::LatexOnly: printf("</latexonly>"); break;
- case DocVerbatim::XmlOnly: printf("</xmlonly>"); break;
- case DocVerbatim::Dot: printf("</dot>"); break;
- case DocVerbatim::Msc: printf("</msc>"); break;
- }
- }
- void visit(DocAnchor *a)
- {
- indent_leaf();
- printf("<anchor name=\"%s\"/>",a->anchor().data());
- }
- void visit(DocInclude *inc)
- {
- indent_leaf();
- printf("<include file=\"%s\" type=\"",inc->file().data());
- switch(inc->type())
- {
- case DocInclude::Include: printf("include"); break;
- case DocInclude::IncWithLines: printf("incwithlines"); break;
- case DocInclude::DontInclude: printf("dontinclude"); break;
- case DocInclude::HtmlInclude: printf("htmlinclude"); break;
- case DocInclude::VerbInclude: printf("verbinclude"); break;
- case DocInclude::Snippet: printf("snippet"); break;
- }
- printf("\"/>");
- }
- void visit(DocIncOperator *op)
- {
- indent_leaf();
- printf("<incoperator pattern=\"%s\" type=\"",op->pattern().data());
- switch(op->type())
- {
- case DocIncOperator::Line: printf("line"); break;
- case DocIncOperator::Skip: printf("skip"); break;
- case DocIncOperator::SkipLine: printf("skipline"); break;
- case DocIncOperator::Until: printf("until"); break;
- }
- printf("\"/>");
- }
- void visit(DocFormula *f)
- {
- indent_leaf();
- printf("<formula name=%s test=%s/>",f->name().data(),f->text().data());
- }
- void visit(DocIndexEntry *i)
- {
- indent_leaf();
- printf("<indexentry>%s</indexentry\n",i->entry().data());
- }
- void visit(DocSimpleSectSep *)
- {
- indent_leaf();
- printf("<simplesectsep/>");
- }
- void visit(DocCite *cite)
- {
- indent_leaf();
- printf("<cite ref=\"%s\" file=\"%s\" "
- "anchor=\"%s\" text=\"%s\""
- "/>\n",
- cite->ref().data(),cite->file().data(),cite->anchor().data(),
- cite->text().data());
- }
-
- //--------------------------------------
-
- void visitPre(DocAutoList *l)
- {
- indent_pre();
- if (l->isEnumList())
- {
- printf("<ol>\n");
- }
- else
- {
- printf("<ul>\n");
- }
- }
- void visitPost(DocAutoList *l)
- {
- indent_post();
- if (l->isEnumList())
- {
- printf("</ol>\n");
- }
- else
- {
- printf("</ul>\n");
- }
- }
- void visitPre(DocAutoListItem *)
- {
- indent_pre();
- printf("<li>\n");
- }
- void visitPost(DocAutoListItem *)
- {
- indent_post();
- printf("</li>\n");
- }
- void visitPre(DocPara *)
- {
- indent_pre();
- printf("<para>\n");
- }
- void visitPost(DocPara *)
- {
- indent_post();
- printf("</para>\n");
- }
- void visitPre(DocRoot *)
- {
- indent_pre();
- printf("<root>\n");
- }
- void visitPost(DocRoot *)
- {
- indent_post();
- printf("</root>\n");
- }
- void visitPre(DocSimpleSect *s)
- {
- indent_pre();
- printf("<simplesect type=");
- switch(s->type())
- {
- case DocSimpleSect::See: printf("see"); break;
- case DocSimpleSect::Return: printf("return"); break;
- case DocSimpleSect::Author: printf("author"); break;
- case DocSimpleSect::Authors: printf("authors"); break;
- case DocSimpleSect::Version: printf("version"); break;
- case DocSimpleSect::Since: printf("since"); break;
- case DocSimpleSect::Date: printf("date"); break;
- case DocSimpleSect::Note: printf("note"); break;
- case DocSimpleSect::Warning: printf("warning"); break;
- case DocSimpleSect::Pre: printf("pre"); break;
- case DocSimpleSect::Post: printf("post"); break;
- case DocSimpleSect::Copyright: printf("copyright"); break;
- case DocSimpleSect::Invar: printf("invar"); break;
- case DocSimpleSect::Remark: printf("remark"); break;
- case DocSimpleSect::Attention: printf("attention"); break;
- case DocSimpleSect::User: printf("user"); break;
- case DocSimpleSect::Rcs: printf("rcs"); break;
- case DocSimpleSect::Unknown: printf("unknown"); break;
- }
- printf(">\n");
- }
- void visitPost(DocSimpleSect *)
- {
- indent_post();
- printf("</simplesect>\n");
- }
- void visitPre(DocTitle *)
- {
- indent_pre();
- printf("<title>\n");
- }
- void visitPost(DocTitle *)
- {
- indent_post();
- printf("</title>\n");
- }
- void visitPre(DocSimpleList *)
- {
- indent_pre();
- printf("<ul>\n");
- }
- void visitPost(DocSimpleList *)
- {
- indent_post();
- printf("</ul>\n");
- }
- void visitPre(DocSimpleListItem *)
- {
- indent_pre();
- printf("<li>\n");
- }
- void visitPost(DocSimpleListItem *)
- {
- indent_post();
- printf("</li>\n");
- }
- void visitPre(DocSection *s)
- {
- indent_pre();
- printf("<sect%d>\n",s->level());
- }
- void visitPost(DocSection *s)
- {
- indent_post();
- printf("</sect%d>\n",s->level());
- }
- void visitPre(DocHtmlList *s)
- {
- indent_pre();
- if (s->type()==DocHtmlList::Ordered) printf("<ol>\n"); else printf("<ul>\n");
- }
- void visitPost(DocHtmlList *s)
- {
- indent_post();
- if (s->type()==DocHtmlList::Ordered) printf("</ol>\n"); else printf("</ul>\n");
- }
- void visitPre(DocHtmlListItem *)
- {
- indent_pre();
- printf("<li>\n");
- }
- void visitPost(DocHtmlListItem *)
- {
- indent_post();
- printf("</li>\n");
- }
- //void visitPre(DocHtmlPre *)
- //{
- // indent_pre();
- // printf("<pre>\n");
- // m_insidePre=TRUE;
- //}
- //void visitPost(DocHtmlPre *)
- //{
- // m_insidePre=FALSE;
- // indent_post();
- // printf("</pre>\n");
- //}
- void visitPre(DocHtmlDescList *)
- {
- indent_pre();
- printf("<dl>\n");
- }
- void visitPost(DocHtmlDescList *)
- {
- indent_post();
- printf("</dl>\n");
- }
- void visitPre(DocHtmlDescTitle *)
- {
- indent_pre();
- printf("<dt>\n");
- }
- void visitPost(DocHtmlDescTitle *)
- {
- indent_post();
- printf("</dt>\n");
- }
- void visitPre(DocHtmlDescData *)
- {
- indent_pre();
- printf("<dd>\n");
- }
- void visitPost(DocHtmlDescData *)
- {
- indent_post();
- printf("</dd>\n");
- }
- void visitPre(DocHtmlTable *t)
- {
- indent_pre();
- printf("<table rows=\"%d\" cols=\"%d\">\n",
- t->numRows(),t->numColumns());
- }
- void visitPost(DocHtmlTable *)
- {
- indent_post();
- printf("</table>\n");
- }
- void visitPre(DocHtmlRow *)
- {
- indent_pre();
- printf("<tr>\n");
- }
- void visitPost(DocHtmlRow *)
- {
- indent_post();
- printf("</tr>\n");
- }
- void visitPre(DocHtmlCell *c)
- {
- indent_pre();
- printf("<t%c>\n",c->isHeading()?'h':'d');
- }
- void visitPost(DocHtmlCell *c)
- {
- indent_post();
- printf("</t%c>\n",c->isHeading()?'h':'d');
- }
- void visitPre(DocHtmlCaption *)
- {
- indent_pre();
- printf("<caption>\n");
- }
- void visitPost(DocHtmlCaption *)
- {
- indent_post();
- printf("</caption>\n");
- }
- void visitPre(DocInternal *)
- {
- indent_pre();
- printf("<internal>\n");
- }
- void visitPost(DocInternal *)
- {
- indent_post();
- printf("</internal>\n");
- }
- void visitPre(DocHRef *href)
- {
- indent_pre();
- printf("<a url=\"%s\">\n",href->url().data());
- }
- void visitPost(DocHRef *)
- {
- indent_post();
- printf("</a>\n");
- }
- void visitPre(DocHtmlHeader *header)
- {
- indent_pre();
- printf("<h%d>\n",header->level());
- }
- void visitPost(DocHtmlHeader *header)
- {
- indent_post();
- printf("</h%d>\n",header->level());
- }
- void visitPre(DocImage *img)
- {
- indent_pre();
- printf("<image src=\"%s\" type=\"",img->name().data());
- switch(img->type())
- {
- case DocImage::Html: printf("html"); break;
- case DocImage::Latex: printf("latex"); break;
- case DocImage::Rtf: printf("rtf"); break;
- }
- printf("\" width=%s height=%s>\n",img->width().data(),img->height().data());
- }
- void visitPost(DocImage *)
- {
- indent_post();
- printf("</image>\n");
- }
- void visitPre(DocDotFile *df)
- {
- indent_pre();
- printf("<dotfile src=\"%s\">\n",df->name().data());
- }
- void visitPost(DocDotFile *)
- {
- indent_post();
- printf("</dotfile>\n");
- }
- void visitPre(DocMscFile *df)
- {
- indent_pre();
- printf("<mscfile src=\"%s\">\n",df->name().data());
- }
- void visitPost(DocMscFile *)
- {
- indent_post();
- printf("</mscfile>\n");
- }
- void visitPre(DocLink *lnk)
- {
- indent_pre();
- printf("<link ref=\"%s\" file=\"%s\" anchor=\"%s\">\n",
- lnk->ref().data(),lnk->file().data(),lnk->anchor().data());
- }
- void visitPost(DocLink *)
- {
- indent_post();
- printf("</link>\n");
- }
- void visitPre(DocRef *ref)
- {
- indent_pre();
- printf("<ref ref=\"%s\" file=\"%s\" "
- "anchor=\"%s\" targetTitle=\"%s\""
- " hasLinkText=\"%s\" refToAnchor=\"%s\" refToSection=\"%s\">\n",
- ref->ref().data(),ref->file().data(),ref->anchor().data(),
- ref->targetTitle().data(),ref->hasLinkText()?"yes":"no",
- ref->refToAnchor()?"yes":"no", ref->refToSection()?"yes":"no");
- }
- void visitPost(DocRef *)
- {
- indent_post();
- printf("</ref>\n");
- }
- void visitPre(DocSecRefItem *ref)
- {
- indent_pre();
- printf("<secrefitem target=\"%s\">\n",ref->target().data());
- }
- void visitPost(DocSecRefItem *)
- {
- indent_post();
- printf("</secrefitem>\n");
- }
- void visitPre(DocSecRefList *)
- {
- indent_pre();
- printf("<secreflist>\n");
- }
- void visitPost(DocSecRefList *)
- {
- indent_post();
- printf("</secreflist>\n");
- }
- //void visitPre(DocLanguage *l)
- //{
- // indent_pre();
- // printf("<language id=%s>\n",l->id().data());
- //}
- //void visitPost(DocLanguage *)
- //{
- // indent_post();
- // printf("</language>\n");
- //}
- void visitPre(DocParamList *pl)
- {
- indent_pre();
- //QStrListIterator sli(pl->parameters());
- QListIterator<DocNode> sli(pl->parameters());
- //const char *s;
- DocNode *param;
- printf("<parameters>");
- for (sli.toFirst();(param=sli.current());++sli)
- {
- printf("<param>");
- if (param->kind()==DocNode::Kind_Word)
- {
- visit((DocWord*)param);
- }
- else if (param->kind()==DocNode::Kind_LinkedWord)
- {
- visit((DocLinkedWord*)param);
- }
- printf("</param>");
- }
- printf("\n");
- }
- void visitPost(DocParamList *)
- {
- indent_post();
- printf("</parameters>\n");
- }
- void visitPre(DocParamSect *ps)
- {
- indent_pre();
- printf("<paramsect type=");
- switch (ps->type())
- {
- case DocParamSect::Param: printf("param"); break;
- case DocParamSect::RetVal: printf("retval"); break;
- case DocParamSect::Exception: printf("exception"); break;
- case DocParamSect::TemplateParam: printf("templateparam"); break;
- case DocParamSect::Unknown: printf("unknown"); break;
- }
- printf(">\n");
- }
- void visitPost(DocParamSect *)
- {
- indent_post();
- printf("</paramsect>\n");
- }
- void visitPre(DocXRefItem *x)
- {
- indent_pre();
- printf("<xrefitem file=\"%s\" anchor=\"%s\" title=\"%s\"/>\n",
- x->file().data(),x->anchor().data(),x->title().data());
- }
- void visitPost(DocXRefItem *)
- {
- indent_post();
- printf("<xrefitem/>\n");
- }
- void visitPre(DocInternalRef *r)
- {
- indent_pre();
- printf("<internalref file=%s anchor=%s>\n",r->file().data(),r->anchor().data());
- }
- void visitPost(DocInternalRef *)
- {
- indent_post();
- printf("</internalref>\n");
- }
- void visitPre(DocCopy *c)
- {
- indent_pre();
- printf("<copy link=\"%s\">\n",c->link().data());
- }
- void visitPost(DocCopy *)
- {
- indent_post();
- printf("</copy>\n");
- }
- void visitPre(DocText *)
- {
- indent_pre();
- printf("<text>\n");
- }
- void visitPost(DocText *)
- {
- indent_post();
- printf("</text>\n");
- }
- void visitPre(DocHtmlBlockQuote *)
- {
- indent_pre();
- printf("<blockquote>\n");
- }
- void visitPost(DocHtmlBlockQuote *)
- {
- indent_post();
- printf("</blockquote>\n");
- }
-
- private:
- // helper functions
- void indent()
- {
- if (m_needsEnter) printf("\n");
- for (int i=0;i<m_indent;i++) printf(".");
- m_needsEnter=FALSE;
- }
- void indent_leaf()
- {
- if (!m_needsEnter) indent();
- m_needsEnter=TRUE;
- }
- void indent_pre()
- {
- indent();
- m_indent++;
- }
- void indent_post()
- {
- m_indent--;
- indent();
- }
-
- // member variables
- int m_indent;
- bool m_needsEnter;
- bool m_insidePre;
-};
-
-#endif