Doxygen
printdocvisitor.h
浏览该文件的文档.
1 /******************************************************************************
2  *
3  *
4  *
5  *
6  * Copyright (C) 1997-2015 by Dimitri van Heesch.
7  *
8  * Permission to use, copy, modify, and distribute this software and its
9  * documentation under the terms of the GNU General Public License is hereby
10  * granted. No representations are made about the suitability of this software
11  * for any purpose. It is provided "as is" without express or implied warranty.
12  * See the GNU General Public License for more details.
13  *
14  * Documents produced by Doxygen are derivative works derived from the
15  * input used in their production; they are not affected by this license.
16  *
17  */
18 
19 #ifndef PRINTDOCVISITOR_H
20 #define PRINTDOCVISITOR_H
21 
22 #include "docvisitor.h"
23 #include "htmlentity.h"
24 #include "emoji.h"
25 #include "message.h"
26 
27 /*! Concrete visitor implementation for pretty printing */
29 {
30  public:
33 
34  //--------------------------------------
35 
36  void visit(DocWord *w)
37  {
38  indent_leaf();
39  printf("%s",qPrint(w->word()));
40  }
41  void visit(DocLinkedWord *w)
42  {
43  indent_leaf();
44  printf("%s",qPrint(w->word()));
45  }
46  void visit(DocWhiteSpace *w)
47  {
48  indent_leaf();
49  if (m_insidePre)
50  {
51  printf("%s",qPrint(w->chars()));
52  }
53  else
54  {
55  printf(" ");
56  }
57  }
58  void visit(DocSymbol *s)
59  {
60  indent_leaf();
61  const char *res = HtmlEntityMapper::instance()->utf8(s->symbol(),TRUE);
62  if (res)
63  {
64  printf("%s",res);
65  }
66  else
67  {
68  printf("print: non supported HTML-entity found: %s\n",HtmlEntityMapper::instance()->html(s->symbol(),TRUE));
69  }
70  }
71  void visit(DocEmoji *s)
72  {
73  indent_leaf();
74  const char *res = EmojiEntityMapper::instance()->name(s->index());
75  if (res)
76  {
77  printf("%s",res);
78  }
79  else
80  {
81  printf("print: non supported emoji found: %s\n",qPrint(s->name()));
82  }
83  }
84  void visit(DocURL *u)
85  {
86  indent_leaf();
87  printf("%s",qPrint(u->url()));
88  }
89  void visit(DocLineBreak *)
90  {
91  indent_leaf();
92  printf("<br/>");
93  }
94  void visit(DocHorRuler *)
95  {
96  indent_leaf();
97  printf("<hr>");
98  }
99  void visit(DocStyleChange *s)
100  {
101  indent_leaf();
102  switch (s->style())
103  {
105  if (s->enable()) printf("<bold>"); else printf("</bold>");
106  break;
107  case DocStyleChange::S:
108  if (s->enable()) printf("<s>"); else printf("</s>");
109  break;
111  if (s->enable()) printf("<strike>"); else printf("</strike>");
112  break;
113  case DocStyleChange::Del:
114  if (s->enable()) printf("<del>"); else printf("</del>");
115  break;
117  if (s->enable()) printf("<underline>"); else printf("</underline>");
118  break;
119  case DocStyleChange::Ins:
120  if (s->enable()) printf("<ins>"); else printf("</ins>");
121  break;
123  if (s->enable()) printf("<italic>"); else printf("</italic>");
124  break;
126  if (s->enable()) printf("<code>"); else printf("</code>");
127  break;
129  if (s->enable()) printf("<sub>"); else printf("</sub>");
130  break;
132  if (s->enable()) printf("<sup>"); else printf("</sup>");
133  break;
135  if (s->enable()) printf("<center>"); else printf("</center>");
136  break;
138  if (s->enable()) printf("<small>"); else printf("</small>");
139  break;
141  if (s->enable()) printf("<pre>"); else printf("</pre>");
142  break;
143  case DocStyleChange::Div:
144  if (s->enable()) printf("<div>"); else printf("</div>");
145  break;
147  if (s->enable()) printf("<span>"); else printf("</span>");
148  break;
149  }
150  }
151  void visit(DocVerbatim *s)
152  {
153  indent_leaf();
154  switch(s->type())
155  {
156  case DocVerbatim::Code: printf("<code>"); break;
157  case DocVerbatim::Verbatim: printf("<verbatim>"); break;
158  case DocVerbatim::HtmlOnly: printf("<htmlonly>"); break;
159  case DocVerbatim::RtfOnly: printf("<rtfonly>"); break;
160  case DocVerbatim::ManOnly: printf("<manonly>"); break;
161  case DocVerbatim::LatexOnly: printf("<latexonly>"); break;
162  case DocVerbatim::XmlOnly: printf("<xmlonly>"); break;
163  case DocVerbatim::DocbookOnly: printf("<docbookonly>"); break;
164  case DocVerbatim::Dot: printf("<dot>"); break;
165  case DocVerbatim::Msc: printf("<msc>"); break;
166  case DocVerbatim::PlantUML: printf("<plantuml>"); break;
167  }
168  printf("%s",qPrint(s->text()));
169  switch(s->type())
170  {
171  case DocVerbatim::Code: printf("</code>"); break;
172  case DocVerbatim::Verbatim: printf("</verbatim>"); break;
173  case DocVerbatim::HtmlOnly: printf("</htmlonly>"); break;
174  case DocVerbatim::RtfOnly: printf("</rtfonly>"); break;
175  case DocVerbatim::ManOnly: printf("</manonly>"); break;
176  case DocVerbatim::LatexOnly: printf("</latexonly>"); break;
177  case DocVerbatim::XmlOnly: printf("</xmlonly>"); break;
178  case DocVerbatim::DocbookOnly: printf("</docbookonly>"); break;
179  case DocVerbatim::Dot: printf("</dot>"); break;
180  case DocVerbatim::Msc: printf("</msc>"); break;
181  case DocVerbatim::PlantUML: printf("</plantuml>"); break;
182  }
183  }
184  void visit(DocAnchor *a)
185  {
186  indent_leaf();
187  printf("<anchor name=\"%s\"/>",qPrint(a->anchor()));
188  }
189  void visit(DocInclude *inc)
190  {
191  indent_leaf();
192  printf("<include file=\"%s\" type=\"",qPrint(inc->file()));
193  switch(inc->type())
194  {
195  case DocInclude::Include: printf("include"); break;
196  case DocInclude::IncWithLines: printf("incwithlines"); break;
197  case DocInclude::DontInclude: printf("dontinclude"); break;
198  case DocInclude::DontIncWithLines: printf("dontinwithlines"); break;
200  printf("htmlinclude");
201  if (inc->isBlock()) printf(" block=\"yes\"");
202  break;
203  case DocInclude::LatexInclude: printf("latexinclude"); break;
204  case DocInclude::RtfInclude: printf("rtfinclude"); break;
205  case DocInclude::DocbookInclude: printf("docbookinclude"); break;
206  case DocInclude::ManInclude: printf("maninclude"); break;
207  case DocInclude::XmlInclude: printf("xmlinclude"); break;
208  case DocInclude::VerbInclude: printf("verbinclude"); break;
209  case DocInclude::Snippet: printf("snippet"); break;
210  case DocInclude::SnipWithLines: printf("snipwithlines"); break;
213  err("Internal inconsistency: found switch SnippetDoc / IncludeDoc in file: %s"
214  "Please create a bug report\n",__FILE__);
215  break;
216  }
217  printf("\"/>");
218  }
219  void visit(DocIncOperator *op)
220  {
221  indent_leaf();
222  printf("<incoperator pattern=\"%s\" type=\"",qPrint(op->pattern()));
223  switch(op->type())
224  {
225  case DocIncOperator::Line: printf("line"); break;
226  case DocIncOperator::Skip: printf("skip"); break;
227  case DocIncOperator::SkipLine: printf("skipline"); break;
228  case DocIncOperator::Until: printf("until"); break;
229  }
230  printf("\"/>");
231  }
232  void visit(DocFormula *f)
233  {
234  indent_leaf();
235  printf("<formula name=%s text=%s/>",qPrint(f->name()),qPrint(f->text()));
236  }
237  void visit(DocIndexEntry *i)
238  {
239  indent_leaf();
240  printf("<indexentry>%s</indexentry\n",qPrint(i->entry()));
241  }
242  void visit(DocSimpleSectSep *)
243  {
244  indent_leaf();
245  printf("<simplesectsep/>");
246  }
247  void visit(DocCite *cite)
248  {
249  indent_leaf();
250  printf("<cite ref=\"%s\" file=\"%s\" "
251  "anchor=\"%s\" text=\"%s\""
252  "/>\n",
253  qPrint(cite->ref()),qPrint(cite->file()),qPrint(cite->anchor()),
254  qPrint(cite->text()));
255  }
256 
257  //--------------------------------------
258 
259  void visitPre(DocAutoList *l)
260  {
261  indent_pre();
262  if (l->isEnumList())
263  {
264  printf("<ol>\n");
265  }
266  else
267  {
268  printf("<ul>\n");
269  }
270  }
271  void visitPost(DocAutoList *l)
272  {
273  indent_post();
274  if (l->isEnumList())
275  {
276  printf("</ol>\n");
277  }
278  else
279  {
280  printf("</ul>\n");
281  }
282  }
283  void visitPre(DocAutoListItem *)
284  {
285  indent_pre();
286  printf("<li>\n");
287  }
288  void visitPost(DocAutoListItem *)
289  {
290  indent_post();
291  printf("</li>\n");
292  }
293  void visitPre(DocPara *)
294  {
295  indent_pre();
296  printf("<para>\n");
297  }
298  void visitPost(DocPara *)
299  {
300  indent_post();
301  printf("</para>\n");
302  }
303  void visitPre(DocRoot *)
304  {
305  indent_pre();
306  printf("<root>\n");
307  }
308  void visitPost(DocRoot *)
309  {
310  indent_post();
311  printf("</root>\n");
312  }
313  void visitPre(DocSimpleSect *s)
314  {
315  indent_pre();
316  printf("<simplesect type=");
317  switch(s->type())
318  {
319  case DocSimpleSect::See: printf("see"); break;
320  case DocSimpleSect::Return: printf("return"); break;
321  case DocSimpleSect::Author: printf("author"); break;
322  case DocSimpleSect::Authors: printf("authors"); break;
323  case DocSimpleSect::Version: printf("version"); break;
324  case DocSimpleSect::Since: printf("since"); break;
325  case DocSimpleSect::Date: printf("date"); break;
326  case DocSimpleSect::Note: printf("note"); break;
327  case DocSimpleSect::Warning: printf("warning"); break;
328  case DocSimpleSect::Pre: printf("pre"); break;
329  case DocSimpleSect::Post: printf("post"); break;
330  case DocSimpleSect::Copyright: printf("copyright"); break;
331  case DocSimpleSect::Invar: printf("invar"); break;
332  case DocSimpleSect::Remark: printf("remark"); break;
333  case DocSimpleSect::Attention: printf("attention"); break;
334  case DocSimpleSect::User: printf("user"); break;
335  case DocSimpleSect::Rcs: printf("rcs"); break;
336  case DocSimpleSect::Unknown: printf("unknown"); break;
337  }
338  printf(">\n");
339  }
340  void visitPost(DocSimpleSect *)
341  {
342  indent_post();
343  printf("</simplesect>\n");
344  }
345  void visitPre(DocTitle *)
346  {
347  indent_pre();
348  printf("<title>\n");
349  }
350  void visitPost(DocTitle *)
351  {
352  indent_post();
353  printf("</title>\n");
354  }
355  void visitPre(DocSimpleList *)
356  {
357  indent_pre();
358  printf("<ul>\n");
359  }
360  void visitPost(DocSimpleList *)
361  {
362  indent_post();
363  printf("</ul>\n");
364  }
366  {
367  indent_pre();
368  printf("<li>\n");
369  }
371  {
372  indent_post();
373  printf("</li>\n");
374  }
375  void visitPre(DocSection *s)
376  {
377  indent_pre();
378  printf("<sect%d>\n",s->level());
379  }
380  void visitPost(DocSection *s)
381  {
382  indent_post();
383  printf("</sect%d>\n",s->level());
384  }
385  void visitPre(DocHtmlList *s)
386  {
387  indent_pre();
388  if (s->type()==DocHtmlList::Ordered)
389  {
390  printf("<ol");
391  for (const auto &opt : s->attribs())
392  {
393  printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
394  }
395  printf(">\n");
396  }
397  else printf("<ul>\n");
398 
399  }
400  void visitPost(DocHtmlList *s)
401  {
402  indent_post();
403  if (s->type()==DocHtmlList::Ordered) printf("</ol>\n"); else printf("</ul>\n");
404  }
405  void visitPre(DocHtmlListItem *s)
406  {
407  indent_pre();
408  printf("<li");
409  for (const auto &opt : s->attribs())
410  {
411  printf(" %s=\"%s\"",qPrint(opt.name),qPrint(opt.value));
412  }
413  printf(">\n");
414  }
415  void visitPost(DocHtmlListItem *)
416  {
417  indent_post();
418  printf("</li>\n");
419  }
420  //void visitPre(DocHtmlPre *)
421  //{
422  // indent_pre();
423  // printf("<pre>\n");
424  // m_insidePre=TRUE;
425  //}
426  //void visitPost(DocHtmlPre *)
427  //{
428  // m_insidePre=FALSE;
429  // indent_post();
430  // printf("</pre>\n");
431  //}
432  void visitPre(DocHtmlDescList *)
433  {
434  indent_pre();
435  printf("<dl>\n");
436  }
437  void visitPost(DocHtmlDescList *)
438  {
439  indent_post();
440  printf("</dl>\n");
441  }
442  void visitPre(DocHtmlDescTitle *)
443  {
444  indent_pre();
445  printf("<dt>\n");
446  }
448  {
449  indent_post();
450  printf("</dt>\n");
451  }
452  void visitPre(DocHtmlDescData *)
453  {
454  indent_pre();
455  printf("<dd>\n");
456  }
457  void visitPost(DocHtmlDescData *)
458  {
459  indent_post();
460  printf("</dd>\n");
461  }
462  void visitPre(DocHtmlTable *t)
463  {
464  indent_pre();
465  printf("<table rows=\"%zu\" cols=\"%zu\">\n",
466  t->numRows(),t->numColumns());
467  }
469  {
470  indent_post();
471  printf("</table>\n");
472  }
474  {
475  indent_pre();
476  printf("<tr>\n");
477  }
479  {
480  indent_post();
481  printf("</tr>\n");
482  }
483  void visitPre(DocHtmlCell *c)
484  {
485  indent_pre();
486  printf("<t%c>\n",c->isHeading()?'h':'d');
487  }
488  void visitPost(DocHtmlCell *c)
489  {
490  indent_post();
491  printf("</t%c>\n",c->isHeading()?'h':'d');
492  }
493  void visitPre(DocHtmlCaption *)
494  {
495  indent_pre();
496  printf("<caption>\n");
497  }
498  void visitPost(DocHtmlCaption *)
499  {
500  indent_post();
501  printf("</caption>\n");
502  }
503  void visitPre(DocInternal *)
504  {
505  indent_pre();
506  printf("<internal>\n");
507  }
508  void visitPost(DocInternal *)
509  {
510  indent_post();
511  printf("</internal>\n");
512  }
513  void visitPre(DocHRef *href)
514  {
515  indent_pre();
516  printf("<a url=\"%s\">\n",qPrint(href->url()));
517  }
518  void visitPost(DocHRef *)
519  {
520  indent_post();
521  printf("</a>\n");
522  }
523  void visitPre(DocHtmlHeader *header)
524  {
525  indent_pre();
526  printf("<h%d>\n",header->level());
527  }
528  void visitPost(DocHtmlHeader *header)
529  {
530  indent_post();
531  printf("</h%d>\n",header->level());
532  }
533  void visitPre(DocImage *img)
534  {
535  indent_pre();
536  printf("<image src=\"%s\" type=\"",qPrint(img->name()));
537  switch(img->type())
538  {
539  case DocImage::Html: printf("html"); break;
540  case DocImage::Latex: printf("latex"); break;
541  case DocImage::Rtf: printf("rtf"); break;
542  case DocImage::DocBook: printf("docbook"); break;
543  case DocImage::Xml: printf("xml"); break;
544  }
545  printf("\" %s %s inline=\"%s\">\n",qPrint(img->width()),qPrint(img->height()),img->isInlineImage() ? "yes" : "no");
546  }
547  void visitPost(DocImage *)
548  {
550  printf("</image>\n");
551  }
552  void visitPre(DocDotFile *df)
553  {
554  indent_pre();
555  printf("<dotfile src=\"%s\">\n",qPrint(df->name()));
556  }
557  void visitPost(DocDotFile *)
558  {
559  indent_post();
560  printf("</dotfile>\n");
561  }
562  void visitPre(DocMscFile *df)
563  {
564  indent_pre();
565  printf("<mscfile src=\"%s\">\n",qPrint(df->name()));
566  }
567  void visitPost(DocMscFile *)
568  {
569  indent_post();
570  printf("</mscfile>\n");
571  }
572  void visitPre(DocDiaFile *df)
573  {
574  indent_pre();
575  printf("<diafile src=\"%s\">\n",qPrint(df->name()));
576  }
577  void visitPost(DocDiaFile *)
578  {
579  indent_post();
580  printf("</diafile>\n");
581  }
582  void visitPre(DocLink *lnk)
583  {
584  indent_pre();
585  printf("<link ref=\"%s\" file=\"%s\" anchor=\"%s\">\n",
586  qPrint(lnk->ref()),qPrint(lnk->file()),qPrint(lnk->anchor()));
587  }
589  {
590  indent_post();
591  printf("</link>\n");
592  }
593  void visitPre(DocRef *ref)
594  {
595  indent_pre();
596  printf("<ref ref=\"%s\" file=\"%s\" "
597  "anchor=\"%s\" targetTitle=\"%s\""
598  " hasLinkText=\"%s\" refToAnchor=\"%s\" refToSection=\"%s\" refToTable=\"%s\">\n",
599  qPrint(ref->ref()),qPrint(ref->file()),qPrint(ref->anchor()),
600  qPrint(ref->targetTitle()),ref->hasLinkText()?"yes":"no",
601  ref->refToAnchor()?"yes":"no", ref->refToSection()?"yes":"no",
602  ref->refToTable()?"yes":"no");
603  }
605  {
606  indent_post();
607  printf("</ref>\n");
608  }
610  {
611  indent_pre();
612  printf("<secrefitem target=\"%s\">\n",qPrint(ref->target()));
613  }
614  void visitPost(DocSecRefItem *)
615  {
616  indent_post();
617  printf("</secrefitem>\n");
618  }
619  void visitPre(DocSecRefList *)
620  {
621  indent_pre();
622  printf("<secreflist>\n");
623  }
624  void visitPost(DocSecRefList *)
625  {
626  indent_post();
627  printf("</secreflist>\n");
628  }
629  //void visitPre(DocLanguage *l)
630  //{
631  // indent_pre();
632  // printf("<language id=%s>\n",qPrint(l->id()));
633  //}
634  //void visitPost(DocLanguage *)
635  //{
636  // indent_post();
637  // printf("</language>\n");
638  //}
639  void visitPre(DocParamList *pl)
640  {
641  indent_pre();
642  printf("<parameters>");
643  if (!pl->parameters().empty())
644  {
645  printf("<param>");
646  for (const auto &param : pl->parameters())
647  {
648  if (param->kind()==DocNode::Kind_Word)
649  {
650  visit((DocWord*)param.get());
651  }
652  else if (param->kind()==DocNode::Kind_LinkedWord)
653  {
654  visit((DocLinkedWord*)param.get());
655  }
656  else if (param->kind()==DocNode::Kind_Sep)
657  {
658  printf("</param>");
659  printf("<param>");
660  }
661  }
662  printf("</param>");
663  }
664  printf("\n");
665  }
666  void visitPost(DocParamList *)
667  {
668  indent_post();
669  printf("</parameters>\n");
670  }
671  void visitPre(DocParamSect *ps)
672  {
673  indent_pre();
674  printf("<paramsect type=");
675  switch (ps->type())
676  {
677  case DocParamSect::Param: printf("param"); break;
678  case DocParamSect::RetVal: printf("retval"); break;
679  case DocParamSect::Exception: printf("exception"); break;
680  case DocParamSect::TemplateParam: printf("templateparam"); break;
681  case DocParamSect::Unknown: printf("unknown"); break;
682  }
683  printf(">\n");
684  }
685  void visitPost(DocParamSect *)
686  {
688  printf("</paramsect>\n");
689  }
690  void visitPre(DocXRefItem *x)
691  {
692  indent_pre();
693  printf("<xrefitem file=\"%s\" anchor=\"%s\" title=\"%s\">\n",
694  qPrint(x->file()),qPrint(x->anchor()),qPrint(x->title()));
695  }
696  void visitPost(DocXRefItem *)
697  {
698  indent_post();
699  printf("</xrefitem>\n");
700  }
702  {
703  indent_pre();
704  printf("<internalref file=%s anchor=%s>\n",qPrint(r->file()),qPrint(r->anchor()));
705  }
707  {
708  indent_post();
709  printf("</internalref>\n");
710  }
711  void visitPre(DocText *)
712  {
713  indent_pre();
714  printf("<text>\n");
715  }
716  void visitPost(DocText *)
717  {
718  indent_post();
719  printf("</text>\n");
720  }
722  {
723  indent_pre();
724  printf("<blockquote>\n");
725  }
727  {
728  indent_post();
729  printf("</blockquote>\n");
730  }
731  void visitPre(DocVhdlFlow *)
732  {
733  indent_pre();
734  printf("<vhdlflow>\n");
735  }
736  void visitPost(DocVhdlFlow *)
737  {
738  indent_post();
739  printf("</vhdlflow>\n");
740  }
741  void visitPre(DocParBlock *)
742  {
743  indent_pre();
744  printf("<parblock>\n");
745  }
746  void visitPost(DocParBlock *)
747  {
748  indent_post();
749  printf("</parblock>\n");
750  }
751 
752  private:
753  // helper functions
754  void indent()
755  {
756  if (m_needsEnter) printf("\n");
757  for (int i=0;i<m_indent;i++) printf(".");
759  }
760  void indent_leaf()
761  {
764  }
765  void indent_pre()
766  {
767  indent();
768  m_indent++;
769  }
770  void indent_post()
771  {
772  m_indent--;
773  indent();
774  }
775 
776  // member variables
777  int m_indent;
778  bool m_needsEnter;
779  bool m_insidePre;
780 };
781 
782 #endif
DocHtmlBlockQuote
Node representing an HTML blockquote
Definition: docparser.h:1433
DocAutoListItem
Node representing an item of a auto list
Definition: docparser.h:720
DocHRef
Node representing a Hypertext reference
Definition: docparser.h:936
DocStyleChange
Node representing a style change
Definition: docparser.h:343
DocVerbatim
Node representing a verbatim, unparsed text fragment
Definition: docparser.h:510
PrintDocVisitor::m_needsEnter
bool m_needsEnter
Definition: printdocvisitor.h:794
PrintDocVisitor::visitPost
void visitPost(DocLink *)
Definition: printdocvisitor.h:604
DocTitle
Node representing a simple section title
Definition: docparser.h:736
DocXRefItem::file
QCString file() const
Definition: docparser.h:754
DocPara
Node representing a paragraph in the documentation tree
Definition: docparser.h:1178
DocImage::isInlineImage
bool isInlineImage() const
Definition: docparser.h:785
PrintDocVisitor::m_insidePre
bool m_insidePre
Definition: printdocvisitor.h:795
DocInclude::HtmlInclude
@ HtmlInclude
Definition: docparser.h:566
DocSecRefItem::target
QCString target() const
Definition: docparser.h:1028
DocSimpleSect::Return
@ Return
Definition: docparser.h:1116
DocImage::width
QCString width() const
Definition: docparser.h:781
DocVerbatim::text
QCString text() const
Definition: docparser.h:519
DocDotFile
Node representing a dot file
Definition: docparser.h:830
DocHtmlTable
Node representing a HTML table
Definition: docparser.h:1405
DocVisitor::DocVisitor
DocVisitor(int id)
Definition: docvisitor.cpp:32
DocSimpleSect::Warning
@ Warning
Definition: docparser.h:1117
DocImage::Xml
@ Xml
Definition: docparser.h:774
DocNode::Kind_Word
@ Kind_Word
Definition: docparser.h:101
DocRoot
Root node of documentation tree
Definition: docparser.h:1457
DocVerbatim::HtmlOnly
@ HtmlOnly
Definition: docparser.h:513
DocStyleChange::Center
@ Center
Definition: docparser.h:349
PrintDocVisitor::visit
void visit(DocWord *w)
Definition: printdocvisitor.h:52
DocHtmlHeader
Node Html heading
Definition: docparser.h:957
DocSimpleSect::Unknown
@ Unknown
Definition: docparser.h:1116
DocStyleChange::Strike
@ Strike
Definition: docparser.h:356
docvisitor.h
PrintDocVisitor::visitPre
void visitPre(DocAutoList *l)
Definition: printdocvisitor.h:275
DocInclude::Snippet
@ Snippet
Definition: docparser.h:567
DocHtmlListItem
Node representing a HTML list item
Definition: docparser.h:1286
DocHtmlTable::numColumns
size_t numColumns() const
Definition: docparser.h:1417
DocStyleChange::Del
@ Del
Definition: docparser.h:358
DocVhdlFlow
Node representing a VHDL flow chart
Definition: docparser.h:860
DocVerbatim::Msc
@ Msc
Definition: docparser.h:513
DocHtmlDescData
Node representing a HTML description data
Definition: docparser.h:1303
DocSimpleSect::type
Type type() const
Definition: docparser.h:1122
DocHtmlDescTitle
Node representing a Html description item
Definition: docparser.h:973
DocAnchor::anchor
QCString anchor() const
Definition: docparser.h:308
DocInclude::XmlInclude
@ XmlInclude
Definition: docparser.h:568
DocVerbatim::PlantUML
@ PlantUML
Definition: docparser.h:513
DocImage::DocBook
@ DocBook
Definition: docparser.h:774
DocEmoji
Node representing a n emoji
Definition: docparser.h:469
DocRef::ref
QCString ref() const
Definition: docparser.h:899
DocInternalRef::anchor
QCString anchor() const
Definition: docparser.h:927
PrintDocVisitor::indent_leaf
void indent_leaf()
Definition: printdocvisitor.h:776
DocStyleChange::Italic
@ Italic
Definition: docparser.h:347
DocMscFile
Node representing a msc file
Definition: docparser.h:840
DocVerbatim::Code
@ Code
Definition: docparser.h:513
DocStyleChange::Bold
@ Bold
Definition: docparser.h:346
DocRef::targetTitle
QCString targetTitle() const
Definition: docparser.h:901
DocInclude::IncludeDoc
@ IncludeDoc
Definition: docparser.h:567
DocRef::anchor
QCString anchor() const
Definition: docparser.h:900
DocEmoji::name
QCString name() const
Definition: docparser.h:473
DocVerbatim::RtfOnly
@ RtfOnly
Definition: docparser.h:513
DocParamSect::TemplateParam
@ TemplateParam
Definition: docparser.h:1156
DocVerbatim::type
Type type() const
Definition: docparser.h:518
DocIndexEntry::entry
QCString entry() const
Definition: docparser.h:691
DocSecRefItem
Node representing a reference to a section
Definition: docparser.h:1023
PrintDocVisitor::indent
void indent()
Definition: printdocvisitor.h:770
DocStyleChange::Span
@ Span
Definition: docparser.h:354
DocAnchor
Node representing an anchor
Definition: docparser.h:303
DocFormula::text
QCString text() const
Definition: docparser.h:664
DocXRefItem::anchor
QCString anchor() const
Definition: docparser.h:755
DocRef::hasLinkText
bool hasLinkText() const
Definition: docparser.h:902
DocStyleChange::Superscript
@ Superscript
Definition: docparser.h:352
err
void err(const char *fmt,...)
Definition: message.cpp:203
DocText
Root node of a text fragment
Definition: docparser.h:1447
DocHtmlList::attribs
const HtmlAttribList & attribs() const
Definition: docparser.h:1101
DocVisitor
Abstract visitor that participates in the visitor pattern.
Definition: docvisitor.h:92
DocSimpleSect::Author
@ Author
Definition: docparser.h:1116
DocSimpleSect::Note
@ Note
Definition: docparser.h:1117
DocInclude::DocbookInclude
@ DocbookInclude
Definition: docparser.h:568
DocImage::name
QCString name() const
Definition: docparser.h:779
DocInclude::DontInclude
@ DontInclude
Definition: docparser.h:566
HtmlEntityMapper::instance
static HtmlEntityMapper * instance()
Returns the one and only instance of the HTML entity mapper
Definition: htmlentity.cpp:341
DocInclude::VerbInclude
@ VerbInclude
Definition: docparser.h:566
DocImage::Html
@ Html
Definition: docparser.h:774
DocFormula
Node representing an item of a cross-referenced list
Definition: docparser.h:658
DocVerbatim::DocbookOnly
@ DocbookOnly
Definition: docparser.h:513
DocLinkedWord::word
QCString word() const
Definition: docparser.h:237
DocHtmlDescList
Node representing a Html description list
Definition: docparser.h:987
DocIncOperator
Node representing a include/dontinclude operator block
Definition: docparser.h:606
DocSymbol::symbol
SymType symbol() const
Definition: docparser.h:459
DocHtmlList::Ordered
@ Ordered
Definition: docparser.h:1096
DocIndexEntry
Node representing an entry in the index.
Definition: docparser.h:682
DocSimpleSect::User
@ User
Definition: docparser.h:1117
DocSecRefList
Node representing a list of section references
Definition: docparser.h:1048
DocLineBreak
Node representing a line break
Definition: docparser.h:272
DocWord
Node representing a word
Definition: docparser.h:217
DocSymbol
Node representing a special symbol
Definition: docparser.h:385
EmojiEntityMapper::name
const char * name(int index) const
Access routine to the name of the Emoji entity
Definition: emoji.cpp:1590
DocXRefItem
Node representing an item of a cross-referenced list
Definition: docparser.h:749
DocDiagramFileBase::name
QCString name() const
Definition: docparser.h:808
DocURL::url
QCString url() const
Definition: docparser.h:261
DocSection::level
int level() const
Definition: docparser.h:1007
PrintDocVisitor::visitPost
void visitPost(DocAutoList *l)
Definition: printdocvisitor.h:287
DocImage
Node representing an image
Definition: docparser.h:771
DocInclude::file
QCString file() const
Definition: docparser.h:577
DocURL
Node representing a URL (or email address)
Definition: docparser.h:256
message.h
DocSimpleSect::See
@ See
Definition: docparser.h:1116
DocIncOperator::Until
@ Until
Definition: docparser.h:609
DocHtmlCaption
Node representing a HTML table caption
Definition: docparser.h:1352
DocStyleChange::Ins
@ Ins
Definition: docparser.h:359
DocInclude::SnipWithLines
@ SnipWithLines
Definition: docparser.h:567
DocImage::Latex
@ Latex
Definition: docparser.h:774
DocParamList
Node representing a parameter list.
Definition: docparser.h:1228
DocSimpleSect::Rcs
@ Rcs
Definition: docparser.h:1117
DocCite::ref
QCString ref() const
Definition: docparser.h:328
DocInternalRef::file
QCString file() const
Definition: docparser.h:925
DocIncOperator::Skip
@ Skip
Definition: docparser.h:609
DocParBlock
Node representing an block of paragraphs
Definition: docparser.h:1070
DocVerbatim::ManOnly
@ ManOnly
Definition: docparser.h:513
DocSimpleSectSep
Node representing a separator between two simple sections of the same type.
Definition: docparser.h:1139
DocImage::Rtf
@ Rtf
Definition: docparser.h:774
DocFormula::name
QCString name() const
Definition: docparser.h:663
DocHRef::url
QCString url() const
Definition: docparser.h:943
PrintDocVisitor::indent_pre
void indent_pre()
Definition: printdocvisitor.h:781
DocStyleChange::Small
@ Small
Definition: docparser.h:350
DocCite
Node representing a citation of some bibliographic reference
Definition: docparser.h:321
PrintDocVisitor::m_indent
int m_indent
Definition: printdocvisitor.h:793
DocRef
Node representing a reference to some item
Definition: docparser.h:891
DocSimpleSect::Date
@ Date
Definition: docparser.h:1116
TRUE
#define TRUE
Definition: qcstring.h:36
DocSimpleSect::Authors
@ Authors
Definition: docparser.h:1116
DocParamSect
Node representing a parameter section
Definition: docparser.h:1150
DocInclude::IncWithLines
@ IncWithLines
Definition: docparser.h:567
DocVisitor_Other
const int DocVisitor_Other
Definition: docvisitor.h:30
DocInclude::isBlock
bool isBlock() const
Definition: docparser.h:590
DocHtmlList
Node representing a Html list
Definition: docparser.h:1093
PrintDocVisitor::visitPre
void visitPre(DocRef *ref)
Definition: printdocvisitor.h:609
DocRef::file
QCString file() const
Definition: docparser.h:897
DocParamSect::type
Type type() const
Definition: docparser.h:1167
DocSimpleSect
Node representing a simple section
Definition: docparser.h:1111
DocSection
Node representing a normal section
Definition: docparser.h:1001
DocHorRuler
Node representing a horizontal ruler
Definition: docparser.h:288
DocIncOperator::SkipLine
@ SkipLine
Definition: docparser.h:609
DocWord::word
QCString word() const
Definition: docparser.h:221
DocInclude
Node representing an included text block from file
Definition: docparser.h:563
DocRef::refToAnchor
bool refToAnchor() const
Definition: docparser.h:903
DocStyleChange::Subscript
@ Subscript
Definition: docparser.h:351
DocAutoList
Node representing an auto List
Definition: docparser.h:703
PrintDocVisitor
Definition: printdocvisitor.h:28
DocImage::height
QCString height() const
Definition: docparser.h:782
DocNode::Kind_Sep
@ Kind_Sep
Definition: docparser.h:154
DocWhiteSpace::chars
QCString chars() const
Definition: docparser.h:490
DocNode::Kind_LinkedWord
@ Kind_LinkedWord
Definition: docparser.h:142
DocXRefItem::title
QCString title() const
Definition: docparser.h:756
DocInternal
Node representing an internal section of documentation
Definition: docparser.h:1059
DocParamSect::Exception
@ Exception
Definition: docparser.h:1156
DocHtmlList::type
Type type() const
Definition: docparser.h:1100
DocInclude::RtfInclude
@ RtfInclude
Definition: docparser.h:568
DocInclude::SnippetDoc
@ SnippetDoc
Definition: docparser.h:567
DocInclude::LatexInclude
@ LatexInclude
Definition: docparser.h:566
PrintDocVisitor::indent_post
void indent_post()
Definition: printdocvisitor.h:786
DocEmoji::index
int index() const
Definition: docparser.h:474
DocCite::anchor
QCString anchor() const
Definition: docparser.h:329
DocStyleChange::style
Style style() const
Definition: docparser.h:368
DocLinkedWord
Node representing a word that can be linked to something
Definition: docparser.h:231
DocStyleChange::Code
@ Code
Definition: docparser.h:348
DocInclude::Include
@ Include
Definition: docparser.h:566
DocCite::file
QCString file() const
Definition: docparser.h:326
DocHtmlCell::isHeading
bool isHeading() const
Definition: docparser.h:1324
DocIncOperator::type
Type type() const
Definition: docparser.h:616
DocIncOperator::pattern
QCString pattern() const
Definition: docparser.h:631
DocParamSect::Param
@ Param
Definition: docparser.h:1156
DocAutoList::isEnumList
bool isEnumList() const
Definition: docparser.h:708
DocSimpleSect::Copyright
@ Copyright
Definition: docparser.h:1117
DocDiaFile
Node representing a dia file
Definition: docparser.h:850
DocParamSect::Unknown
@ Unknown
Definition: docparser.h:1156
DocVerbatim::LatexOnly
@ LatexOnly
Definition: docparser.h:513
DocIncOperator::Line
@ Line
Definition: docparser.h:609
qPrint
const char * qPrint(const char *s)
Definition: qcstring.h:589
DocStyleChange::Preformatted
@ Preformatted
Definition: docparser.h:353
DocStyleChange::enable
bool enable() const
Definition: docparser.h:370
DocSimpleSect::Post
@ Post
Definition: docparser.h:1117
DocSimpleSect::Pre
@ Pre
Definition: docparser.h:1117
DocSimpleList
Node representing a simple list
Definition: docparser.h:1082
DocSimpleSect::Remark
@ Remark
Definition: docparser.h:1117
PrintDocVisitor::PrintDocVisitor
PrintDocVisitor()
Definition: printdocvisitor.h:47
DocRef::refToTable
bool refToTable() const
Definition: docparser.h:905
DocStyleChange::Underline
@ Underline
Definition: docparser.h:357
DocSimpleListItem
Node representing a simple list item
Definition: docparser.h:1266
emoji.h
DocInclude::type
Type type() const
Definition: docparser.h:584
DocWhiteSpace
Node representing some amount of white space
Definition: docparser.h:484
DocVerbatim::XmlOnly
@ XmlOnly
Definition: docparser.h:513
DocParamSect::RetVal
@ RetVal
Definition: docparser.h:1156
DocInclude::DontIncWithLines
@ DontIncWithLines
Definition: docparser.h:568
DocStyleChange::Div
@ Div
Definition: docparser.h:355
EmojiEntityMapper::instance
static EmojiEntityMapper * instance()
Returns the one and only instance of the Emoji entity mapper
Definition: emoji.cpp:1536
DocHtmlCell
Node representing a HTML table cell
Definition: docparser.h:1316
DocCite::text
QCString text() const
Definition: docparser.h:330
htmlentity.h
DocInternalRef
Node representing an internal reference to some item
Definition: docparser.h:919
DocParamList::parameters
DocNodeList & parameters()
Definition: docparser.h:1238
DocStyleChange::S
@ S
Definition: docparser.h:360
DocVerbatim::Verbatim
@ Verbatim
Definition: docparser.h:513
DocHtmlTable::numRows
size_t numRows() const
Definition: docparser.h:1412
DocImage::type
Type type() const
Definition: docparser.h:778
DocHtmlRow
Node representing a HTML table row
Definition: docparser.h:1371
DocRef::refToSection
bool refToSection() const
Definition: docparser.h:904
DocInclude::ManInclude
@ ManInclude
Definition: docparser.h:568
DocSimpleSect::Invar
@ Invar
Definition: docparser.h:1117
DocSimpleSect::Version
@ Version
Definition: docparser.h:1116
DocHtmlHeader::level
int level() const
Definition: docparser.h:962
FALSE
#define FALSE
Definition: qcstring.h:33
DocSimpleSect::Since
@ Since
Definition: docparser.h:1116
HtmlEntityMapper::utf8
const char * utf8(DocSymbol::SymType symb, bool useInPrintf=FALSE) const
Access routine to the UTF8 code of the HTML entity
Definition: htmlentity.cpp:366
DocSimpleSect::Attention
@ Attention
Definition: docparser.h:1117
DocHtmlListItem::attribs
const HtmlAttribList & attribs() const
Definition: docparser.h:1293
DocVerbatim::Dot
@ Dot
Definition: docparser.h:513