doxygen  1.8.18
About: Doxygen is a source code documentation generator tool for C++, C, Objective-C, C#, PHP, Java, Python, IDL (diverse flavors), Fortran, VHDL, Tcl, and to some extent D. Different output formats are supported.
  Fossies Dox: doxygen-1.8.18.src.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

mandocvisitor.cpp
Go to the documentation of this file.
1 
19 #include <qfileinfo.h>
20 
21 #include "mandocvisitor.h"
22 #include "docparser.h"
23 #include "language.h"
24 #include "doxygen.h"
25 #include "outputgen.h"
26 #include "code.h"
27 #include "dot.h"
28 #include "util.h"
29 #include "message.h"
30 #include "parserintf.h"
31 #include "filedef.h"
32 #include "htmlentity.h"
33 #include "emoji.h"
34 
36  const char *langExt)
37  : DocVisitor(DocVisitor_Man), m_t(t), m_ci(ci), m_insidePre(FALSE), m_hide(FALSE), m_firstCol(FALSE),
38  m_indent(0), m_langExt(langExt)
39 {
40 }
41 
42  //--------------------------------------
43  // visitor functions for leaf nodes
44  //--------------------------------------
45 
47 {
48  if (m_hide) return;
49  filter(w->word());
51 }
52 
54 {
55  if (m_hide) return;
56  m_t << "\\fB";
57  filter(w->word());
58  m_t << "\\fP";
60 }
61 
63 {
64  if (m_hide) return;
65  if (m_insidePre)
66  {
67  m_t << w->chars();
68  m_firstCol=w->chars().at(w->chars().length()-1)=='\n';
69  }
70  else
71  {
72  m_t << " ";
74  }
75 }
76 
78 {
79  if (m_hide) return;
80  const char *res = HtmlEntityMapper::instance()->man(s->symbol());
81  if (res)
82  {
83  m_t << res;
84  }
85  else
86  {
87  // no error or warning to be supplied
88  // err("man: non supported HTML-entity found: &%s;\n",get_symbol_item(s->symbol()));
89  }
91 }
92 
94 {
95  if (m_hide) return;
96  const char *res = EmojiEntityMapper::instance()->name(s->index());
97  if (res)
98  {
99  m_t << res;
100  }
101  else
102  {
103  m_t << s->name();
104  }
106 }
107 
109 {
110  if (m_hide) return;
111  m_t << u->url();
113 }
114 
116 {
117  if (m_hide) return;
118  m_t << endl << ".br" << endl;
120 }
121 
123 {
124  if (m_hide) return;
125  if (!m_firstCol) m_t << endl;
126  m_t << ".PP" << endl;
128 }
129 
131 {
132  if (m_hide) return;
133  switch (s->style())
134  {
136  if (s->enable()) m_t << "\\fB"; else m_t << "\\fP";
138  break;
139  case DocStyleChange::S:
141  case DocStyleChange::Del:
142  /* not supported */
143  break;
144  case DocStyleChange::Underline: //underline is shown as emphasis
145  case DocStyleChange::Ins:
146  if (s->enable()) m_t << "\\fI"; else m_t << "\\fP";
148  break;
150  if (s->enable()) m_t << "\\fI"; else m_t << "\\fP";
152  break;
154  if (s->enable()) m_t << "\\fC"; else m_t << "\\fP";
156  break;
158  if (s->enable()) m_t << "\\*<"; else m_t << "\\*> ";
160  break;
162  if (s->enable()) m_t << "\\*{"; else m_t << "\\*} ";
164  break;
166  /* not supported */
167  break;
169  /* not supported */
170  break;
172  if (s->enable())
173  {
174  if (!m_firstCol) m_t << endl;
175  m_t << ".PP" << endl;
176  m_t << ".nf" << endl;
178  }
179  else
180  {
182  if (!m_firstCol) m_t << endl;
183  m_t << ".fi" << endl;
184  m_t << ".PP" << endl;
186  }
187  break;
188  case DocStyleChange::Div: /* HTML only */ break;
189  case DocStyleChange::Span: /* HTML only */ break;
190  }
191 }
192 
194 {
195  if (m_hide) return;
196  QCString lang = m_langExt;
197  if (!s->language().isEmpty()) // explicit language setting
198  {
199  lang = s->language();
200  }
201  SrcLangExt langExt = getLanguageFromFileName(lang);
202  switch (s->type())
203  {
204  case DocVerbatim::Code: // fall though
205  if (!m_firstCol) m_t << endl;
206  m_t << ".PP" << endl;
207  m_t << ".nf" << endl;
209  .parseCode(m_ci,s->context(),s->text(),
210  langExt,
211  s->isExample(),s->exampleFile());
212  if (!m_firstCol) m_t << endl;
213  m_t << ".fi" << endl;
214  m_t << ".PP" << endl;
216  break;
217  case DocVerbatim::Verbatim:
218  if (!m_firstCol) m_t << endl;
219  m_t << ".PP" << endl;
220  m_t << ".nf" << endl;
221  m_t << s->text();
222  if (!m_firstCol) m_t << endl;
223  m_t << ".fi" << endl;
224  m_t << ".PP" << endl;
226  break;
227  case DocVerbatim::ManOnly:
228  m_t << s->text();
229  break;
230  case DocVerbatim::HtmlOnly:
231  case DocVerbatim::XmlOnly:
235  case DocVerbatim::Dot:
236  case DocVerbatim::Msc:
237  case DocVerbatim::PlantUML:
238  /* nothing */
239  break;
240  }
241 }
242 
244 {
245  /* no support for anchors in man pages */
246 }
247 
249 {
250  if (m_hide) return;
251  SrcLangExt langExt = getLanguageFromFileName(inc->extension());
252  switch(inc->type())
253  {
255  {
256  if (!m_firstCol) m_t << endl;
257  m_t << ".PP" << endl;
258  m_t << ".nf" << endl;
259  QFileInfo cfi( inc->file() );
260  FileDef *fd = createFileDef( cfi.dirPath().utf8(), cfi.fileName().utf8() );
262  .parseCode(m_ci,inc->context(),
263  inc->text(),
264  langExt,
265  inc->isExample(),
266  inc->exampleFile(),
267  fd, // fileDef,
268  -1, // start line
269  -1, // end line
270  FALSE, // inline fragment
271  0, // memberDef
272  TRUE
273  );
274  delete fd;
275  if (!m_firstCol) m_t << endl;
276  m_t << ".fi" << endl;
277  m_t << ".PP" << endl;
279  }
280  break;
281  case DocInclude::Include:
282  if (!m_firstCol) m_t << endl;
283  m_t << ".PP" << endl;
284  m_t << ".nf" << endl;
286  .parseCode(m_ci,inc->context(),
287  inc->text(),
288  langExt,
289  inc->isExample(),
290  inc->exampleFile(),
291  0, // fileDef
292  -1, // startLine
293  -1, // endLine
294  TRUE, // inlineFragment
295  0, // memberDef
296  FALSE
297  );
298  if (!m_firstCol) m_t << endl;
299  m_t << ".fi" << endl;
300  m_t << ".PP" << endl;
302  break;
310  break;
312  m_t << inc->text();
313  break;
315  if (!m_firstCol) m_t << endl;
316  m_t << ".PP" << endl;
317  m_t << ".nf" << endl;
318  m_t << inc->text();
319  if (!m_firstCol) m_t << endl;
320  m_t << ".fi" << endl;
321  m_t << ".PP" << endl;
323  break;
324  case DocInclude::Snippet:
325  if (!m_firstCol) m_t << endl;
326  m_t << ".PP" << endl;
327  m_t << ".nf" << endl;
329  .parseCode(m_ci,
330  inc->context(),
331  extractBlock(inc->text(),inc->blockId()),
332  langExt,
333  inc->isExample(),
334  inc->exampleFile()
335  );
336  if (!m_firstCol) m_t << endl;
337  m_t << ".fi" << endl;
338  m_t << ".PP" << endl;
340  break;
342  {
343  if (!m_firstCol) m_t << endl;
344  m_t << ".PP" << endl;
345  m_t << ".nf" << endl;
346  QFileInfo cfi( inc->file() );
347  FileDef *fd = createFileDef( cfi.dirPath().utf8(), cfi.fileName().utf8() );
349  .parseCode(m_ci,
350  inc->context(),
351  extractBlock(inc->text(),inc->blockId()),
352  langExt,
353  inc->isExample(),
354  inc->exampleFile(),
355  fd,
356  lineBlock(inc->text(),inc->blockId()),
357  -1, // endLine
358  FALSE, // inlineFragment
359  0, // memberDef
360  TRUE // show line number
361  );
362  delete fd;
363  if (!m_firstCol) m_t << endl;
364  m_t << ".fi" << endl;
365  m_t << ".PP" << endl;
367  }
368  break;
371  err("Internal inconsistency: found switch SnippetDoc / IncludeDoc in file: %s"
372  "Please create a bug report\n",__FILE__);
373  break;
374  }
375 }
376 
378 {
379  QCString locLangExt = getFileNameExtension(op->includeFileName());
380  if (locLangExt.isEmpty()) locLangExt = m_langExt;
381  SrcLangExt langExt = getLanguageFromFileName(locLangExt);
382  //printf("DocIncOperator: type=%d first=%d, last=%d text='%s'\n",
383  // op->type(),op->isFirst(),op->isLast(),op->text().data());
384  if (op->isFirst())
385  {
386  if (!m_hide)
387  {
388  if (!m_firstCol) m_t << endl;
389  m_t << ".PP" << endl;
390  m_t << ".nf" << endl;
391  }
392  pushEnabled();
393  m_hide = TRUE;
394  }
395  if (op->type()!=DocIncOperator::Skip)
396  {
397  popEnabled();
398  if (!m_hide)
399  {
400  FileDef *fd = 0;
401  if (!op->includeFileName().isEmpty())
402  {
403  QFileInfo cfi( op->includeFileName() );
404  fd = createFileDef( cfi.dirPath().utf8(), cfi.fileName().utf8() );
405  }
406 
408  .parseCode(m_ci,op->context(),op->text(),langExt,
409  op->isExample(),op->exampleFile(),
410  fd, // fileDef
411  op->line(), // startLine
412  -1, // endLine
413  FALSE, // inline fragment
414  0, // memberDef
415  op->showLineNo() // show line numbers
416  );
417  if (fd) delete fd;
418  }
419  pushEnabled();
420  m_hide=TRUE;
421  }
422  if (op->isLast())
423  {
424  popEnabled();
425  if (!m_hide)
426  {
427  if (!m_firstCol) m_t << endl;
428  m_t << ".fi" << endl;
429  m_t << ".PP" << endl;
431  }
432  }
433  else
434  {
435  if (!m_hide) m_t << endl;
436  }
437 }
438 
440 {
441  if (m_hide) return;
442  m_t << f->text();
443 }
444 
446 {
447 }
448 
450 {
451 }
452 
454 {
455  if (m_hide) return;
456  m_t << "\\fB";
457  if (cite->file().isEmpty()) m_t << "[";
458  filter(cite->text());
459  if (cite->file().isEmpty()) m_t << "]";
460  m_t << "\\fP";
461 }
462 
463 
464 //--------------------------------------
465 // visitor functions for compound nodes
466 //--------------------------------------
467 
469 {
470  if (m_hide) return;
471  m_indent+=2;
472 }
473 
475 {
476  if (m_hide) return;
477  m_indent-=2;
478  m_t << ".PP" << endl;
479 }
480 
482 {
483  if (m_hide) return;
484  QCString ws;
485  ws.fill(' ',m_indent-2);
486  if (!m_firstCol) m_t << endl;
487  m_t << ".IP \"" << ws;
488  if (((DocAutoList *)li->parent())->isEnumList())
489  {
490  m_t << li->itemNumber() << ".\" " << m_indent+2;
491  }
492  else // bullet list
493  {
494  m_t << "\\(bu\" " << m_indent;
495  }
496  m_t << endl;
498 }
499 
501 {
502  if (m_hide) return;
503  m_t << endl;
505 }
506 
508 {
509 }
510 
512 {
513  if (m_hide) return;
514  if (!p->isLast() && // omit <p> for last paragraph
515  !(p->parent() && // and for parameter sections
517  )
518  )
519  {
520  if (!m_firstCol) m_t << endl;
521  m_t << ".PP" << endl;
523  }
524 }
525 
527 {
528 }
529 
531 {
532 }
533 
535 {
536  if (m_hide) return;
537  if (!m_firstCol)
538  {
539  m_t << endl;
540  m_t << ".PP" << endl;
541  }
542  m_t << "\\fB";
543  switch(s->type())
544  {
545  case DocSimpleSect::See:
546  m_t << theTranslator->trSeeAlso(); break;
547  case DocSimpleSect::Return:
548  m_t << theTranslator->trReturns(); break;
549  case DocSimpleSect::Author:
550  m_t << theTranslator->trAuthor(TRUE,TRUE); break;
552  m_t << theTranslator->trAuthor(TRUE,FALSE); break;
554  m_t << theTranslator->trVersion(); break;
555  case DocSimpleSect::Since:
556  m_t << theTranslator->trSince(); break;
557  case DocSimpleSect::Date:
558  m_t << theTranslator->trDate(); break;
559  case DocSimpleSect::Note:
560  m_t << theTranslator->trNote(); break;
562  m_t << theTranslator->trWarning(); break;
563  case DocSimpleSect::Pre:
564  m_t << theTranslator->trPrecondition(); break;
565  case DocSimpleSect::Post:
566  m_t << theTranslator->trPostcondition(); break;
568  m_t << theTranslator->trCopyright(); break;
570  m_t << theTranslator->trInvariant(); break;
572  m_t << theTranslator->trRemarks(); break;
574  m_t << theTranslator->trAttention(); break;
575  case DocSimpleSect::User: break;
576  case DocSimpleSect::Rcs: break;
577  case DocSimpleSect::Unknown: break;
578  }
579 
580  // special case 1: user defined title
581  if (s->type()!=DocSimpleSect::User && s->type()!=DocSimpleSect::Rcs)
582  {
583  m_t << "\\fP" << endl;
584  m_t << ".RS 4" << endl;
585  }
586 }
587 
589 {
590  if (m_hide) return;
591  if (!m_firstCol) m_t << endl;
592  m_t << ".RE" << endl;
593  m_t << ".PP" << endl;
595 }
596 
598 {
599 }
600 
602 {
603  if (m_hide) return;
604  m_t << "\\fP" << endl;
605  m_t << ".RS 4" << endl;
606 }
607 
609 {
610  if (m_hide) return;
611  m_indent+=2;
612  if (!m_firstCol) m_t << endl;
613  m_t << ".PD 0" << endl;
614 }
615 
617 {
618  if (m_hide) return;
619  m_indent-=2;
620  m_t << ".PP" << endl;
621 }
622 
624 {
625  if (m_hide) return;
626  QCString ws;
627  ws.fill(' ',m_indent-2);
628  if (!m_firstCol) m_t << endl;
629  m_t << ".IP \"" << ws << "\\(bu\" " << m_indent << endl;
631 }
632 
634 {
635  if (m_hide) return;
636  m_t << endl;
638 }
639 
641 {
642  if (m_hide) return;
643  if (!m_firstCol) m_t << endl;
644  if (s->level()==1) m_t << ".SH"; else m_t << ".SS";
645  m_t << " \"";
646  filter(s->title());
647  m_t << "\"" << endl;
648  if (s->level()==1) m_t << ".PP" << endl;
650 }
651 
653 {
654 }
655 
657 {
658  if (m_hide) return;
659  m_indent+=2;
660  if (!m_firstCol) m_t << endl;
661  m_t << ".PD 0" << endl;
662 }
663 
665 {
666  if (m_hide) return;
667  m_indent-=2;
668  if (!m_firstCol) m_t << endl;
669  m_t << ".PP" << endl;
670 }
671 
673 {
674  if (m_hide) return;
675  QCString ws;
676  ws.fill(' ',m_indent-2);
677  if (!m_firstCol) m_t << endl;
678  m_t << ".IP \"" << ws;
679  if (((DocHtmlList *)li->parent())->type()==DocHtmlList::Ordered)
680  {
681  m_t << li->itemNumber() << ".\" " << m_indent+2;
682  }
683  else // bullet list
684  {
685  m_t << "\\(bu\" " << m_indent;
686  }
687  m_t << endl;
689 }
690 
692 {
693  if (m_hide) return;
694  m_t << endl;
696 }
697 
698 //void ManDocVisitor::visitPre(DocHtmlPre *)
699 //{
700 // if (!m_firstCol) m_t << endl;
701 // m_t << ".PP" << endl;
702 // m_t << ".nf" << endl;
703 // m_insidePre=TRUE;
704 //}
705 //
706 //void ManDocVisitor::visitPost(DocHtmlPre *)
707 //{
708 // m_insidePre=FALSE;
709 // if (!m_firstCol) m_t << endl;
710 // m_t << ".fi" << endl;
711 // m_t << ".PP" << endl;
712 // m_firstCol=TRUE;
713 //}
714 
716 {
717 }
718 
720 {
721  if (m_hide) return;
722  if (!m_firstCol) m_t << endl;
723  m_t << ".PP" << endl;
725 }
726 
728 {
729  if (m_hide) return;
730  if (!m_firstCol) m_t << endl;
731  m_t << ".IP \"\\fB";
733 }
734 
736 {
737  if (m_hide) return;
738  m_t << "\\fP\" 1c" << endl;
740 }
741 
743 {
744 }
745 
747 {
748 }
749 
751 {
752 }
753 
755 {
756 }
757 
759 {
760 }
761 
763 {
764 }
765 
767 {
768 }
769 
771 {
772 }
773 
775 {
776 }
777 
779 {
780 }
781 
783 {
784  if (m_hide) return;
785  //if (!m_firstCol) m_t << endl;
786  //m_t << ".PP" << endl;
787  //m_t << "\\fB" << theTranslator->trForInternalUseOnly() << "\\fP" << endl;
788  //m_t << ".RS 4" << endl;
789 }
790 
792 {
793  if (m_hide) return;
794  //if (!m_firstCol) m_t << endl;
795  //m_t << ".RE" << endl;
796  //m_t << ".PP" << endl;
797  //m_firstCol=TRUE;
798 }
799 
801 {
802  if (m_hide) return;
803  m_t << "\\fC";
804 }
805 
807 {
808  if (m_hide) return;
809  m_t << "\\fP";
810 }
811 
813 {
814  if (m_hide) return;
815  if (!m_firstCol) m_t << endl;
816  if (header->level()==1) m_t << ".SH"; else m_t << ".SS";
817  m_t << " \"";
818 }
819 
821 {
822  if (m_hide) return;
823  m_t << "\"" << endl;
824  if (header->level()==1) m_t << ".PP" << endl;
826 }
827 
829 {
830 }
831 
833 {
834 }
835 
837 {
838 }
839 
841 {
842 }
844 {
845 }
846 
848 {
849 }
850 
852 {
853 }
854 
856 {
857 }
858 
860 {
861  if (m_hide) return;
862  m_t << "\\fB";
863 }
864 
866 {
867  if (m_hide) return;
868  m_t << "\\fP";
869 }
870 
872 {
873  if (m_hide) return;
874  m_t << "\\fB";
875  if (!ref->hasLinkText()) filter(ref->targetTitle());
876 }
877 
879 {
880  if (m_hide) return;
881  m_t << "\\fP";
882 }
883 
885 {
886  if (m_hide) return;
887  QCString ws;
888  ws.fill(' ',m_indent-2);
889  if (!m_firstCol) m_t << endl;
890  m_t << ".IP \"" << ws << "\\(bu\" " << m_indent << endl;
892 }
893 
895 {
896  if (m_hide) return;
897  m_t << endl;
899 }
900 
902 {
903  if (m_hide) return;
904  m_indent+=2;
905 }
906 
908 {
909  if (m_hide) return;
910  m_indent-=2;
911  if (!m_firstCol) m_t << endl;
912  m_t << ".PP" << endl;
913 }
914 
916 {
917  if (m_hide) return;
918  if (!m_firstCol)
919  {
920  m_t << endl;
921  m_t << ".PP" << endl;
922  }
923  m_t << "\\fB";
924  switch(s->type())
925  {
926  case DocParamSect::Param:
927  m_t << theTranslator->trParameters(); break;
928  case DocParamSect::RetVal:
929  m_t << theTranslator->trReturnValues(); break;
931  m_t << theTranslator->trExceptions(); break;
934  default:
935  ASSERT(0);
936  }
937  m_t << "\\fP" << endl;
938  m_t << ".RS 4" << endl;
939 }
940 
942 {
943  if (m_hide) return;
944  if (!m_firstCol) m_t << endl;
945  m_t << ".RE" << endl;
946  m_t << ".PP" << endl;
948 }
949 
951 {
952  if (m_hide) return;
953  m_t << "\\fI";
954  //QStrListIterator li(pl->parameters());
955  //const char *s;
957  DocNode *param;
958  bool first=TRUE;
959  for (li.toFirst();(param=li.current());++li)
960  {
961  if (!first) m_t << ","; else first=FALSE;
962  if (param->kind()==DocNode::Kind_Word)
963  {
964  visit((DocWord*)param);
965  }
966  else if (param->kind()==DocNode::Kind_LinkedWord)
967  {
968  visit((DocLinkedWord*)param);
969  }
970  }
971  m_t << "\\fP ";
972 }
973 
975 {
976  if (m_hide) return;
977  if (!pl->isLast())
978  {
979  if (!m_firstCol) m_t << endl;
980  m_t << ".br" << endl;
981  }
982 }
983 
985 {
986  if (m_hide) return;
987  if (x->title().isEmpty()) return;
988  if (!m_firstCol)
989  {
990  m_t << endl;
991  m_t << ".PP" << endl;
992  }
993  m_t << "\\fB";
994  filter(x->title());
995  m_t << "\\fP" << endl;
996  m_t << ".RS 4" << endl;
997 }
998 
1000 {
1001  if (m_hide) return;
1002  if (x->title().isEmpty()) return;
1003  if (!m_firstCol) m_t << endl;
1004  m_t << ".RE" << endl;
1005  m_t << ".PP" << endl;
1006  m_firstCol=TRUE;
1007 }
1008 
1010 {
1011  if (m_hide) return;
1012  m_t << "\\fB";
1013 }
1014 
1016 {
1017  if (m_hide) return;
1018  m_t << "\\fP";
1019 }
1020 
1022 {
1023 }
1024 
1026 {
1027 }
1028 
1030 {
1031  if (m_hide) return;
1032  if (!m_firstCol)
1033  {
1034  m_t << endl;
1035  m_t << ".PP" << endl;
1036  }
1037  m_t << ".RS 4" << endl; // TODO: add support for nested block quotes
1038 }
1039 
1041 {
1042  if (m_hide) return;
1043  if (!m_firstCol) m_t << endl;
1044  m_t << ".RE" << endl;
1045  m_t << ".PP" << endl;
1046  m_firstCol=TRUE;
1047 }
1048 
1050 {
1051 }
1052 
1054 {
1055 }
1056 
1058 {
1059 }
1060 
1062 {
1063 }
1064 
1065 
1066 void ManDocVisitor::filter(const char *str)
1067 {
1068  if (str)
1069  {
1070  const char *p=str;
1071  char c=0;
1072  while ((c=*p++))
1073  {
1074  switch(c)
1075  {
1076  case '.': m_t << "\\&."; break; // see bug652277
1077  case '\\': m_t << "\\\\"; break;
1078  case '"': c = '\''; // fall through
1079  default: m_t << c; break;
1080  }
1081  }
1082  }
1083 }
1084 
1086 {
1087  m_enabled.push(new bool(m_hide));
1088 }
1089 
1091 {
1092  bool *v=m_enabled.pop();
1093  ASSERT(v!=0);
1094  m_hide = *v;
1095  delete v;
1096 }
1097 
DocStyleChange::style
Style style() const
Definition: docparser.h:396
DocHtmlList::Ordered
@ Ordered
Definition: docparser.h:1112
HtmlEntityMapper::man
const char * man(DocSymbol::SymType symb) const
Access routine to the man code of the HTML entity.
Definition: htmlentity.cpp:439
getLanguageFromFileName
SrcLangExt getLanguageFromFileName(const QCString &fileName)
Definition: util.cpp:6876
DocInclude::blockId
QCString blockId() const
Definition: docparser.h:604
ManDocVisitor::m_enabled
QStack< bool > m_enabled
Definition: mandocvisitor.h:161
DocInclude::SnippetDoc
@ SnippetDoc
Definition: docparser.h:584
QFileInfo
The QFileInfo class provides system-independent file information.
Definition: qfileinfo.h:52
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition: qcstring.h:191
DocInclude::exampleFile
QCString exampleFile() const
Definition: docparser.h:606
lineBlock
int lineBlock(const QCString text, const QCString marker)
Returns the line number of the line following the line with the marker.
Definition: util.cpp:7875
DocNode::kind
virtual Kind kind() const =0
DocPara::isLast
bool isLast() const
Definition: docparser.h:1205
Translator::trRemarks
virtual QCString trRemarks()=0
Doxygen::parserManager
static ParserManager * parserManager
Definition: doxygen.h:130
DocWord
Node representing a word.
Definition: docparser.h:240
DocInclude::SnipWithLines
@ SnipWithLines
Definition: docparser.h:584
DocInclude::extension
QCString extension() const
Definition: docparser.h:595
DocParamSect::type
Type type() const
Definition: docparser.h:1183
DocStyleChange::S
@ S
Definition: docparser.h:388
DocSimpleSect::Post
@ Post
Definition: docparser.h:1133
DocHtmlCell
Node representing a HTML table cell.
Definition: docparser.h:1334
DocVerbatim
Node representing a verbatim, unparsed text fragment.
Definition: docparser.h:539
QFileInfo::dirPath
QString dirPath(bool absPath=FALSE) const
Definition: qfileinfo_unix.cpp:358
DocInclude::Snippet
@ Snippet
Definition: docparser.h:584
DocParamList::isLast
bool isLast() const
Definition: docparser.h:1260
DocNode::Kind_Word
@ Kind_Word
Definition: docparser.h:91
FTextStream
Simplified and optimized version of QTextStream.
Definition: ftextstream.h:12
DocSecRefItem
Node representing a reference to a section.
Definition: docparser.h:1047
DocInternalRef
Node representing an internal reference to some item.
Definition: docparser.h:945
DocHRef
Node representing a Hypertext reference.
Definition: docparser.h:962
DocInclude::text
QCString text() const
Definition: docparser.h:602
ManDocVisitor::popEnabled
void popEnabled()
Definition: mandocvisitor.cpp:1090
DocSection::title
QCString title() const
Definition: docparser.h:1031
Translator::trAttention
virtual QCString trAttention()=0
DocSymbol
Node representing a special symbol.
Definition: docparser.h:414
DocHtmlListItem::itemNumber
int itemNumber() const
Definition: docparser.h:1309
SrcLangExt
SrcLangExt
Language as given by extension.
Definition: types.h:43
DocStyleChange::Subscript
@ Subscript
Definition: docparser.h:379
DocVerbatim::ManOnly
@ ManOnly
Definition: docparser.h:541
QListIterator
The QListIterator class provides an iterator for QList collections.
Definition: qlist.h:128
DocSimpleSectSep
Node representing a separator between two simple sections of the same type.
Definition: docparser.h:1156
DocEmoji::index
int index() const
Definition: docparser.h:502
DocRef
Node representing a reference to some item.
Definition: docparser.h:916
DocInclude::VerbInclude
@ VerbInclude
Definition: docparser.h:583
DocInclude::type
Type type() const
Definition: docparser.h:601
Translator::trExceptions
virtual QCString trExceptions()=0
Translator::trSince
virtual QCString trSince()=0
DocParBlock
Node representing an block of paragraphs.
Definition: docparser.h:1087
QCString::length
uint length() const
Returns the length of the string, excluding the 0-terminator.
Definition: qcstring.h:197
createFileDef
FileDef * createFileDef(const char *p, const char *n, const char *ref, const char *dn)
Definition: filedef.cpp:183
DocNode::Kind_LinkedWord
@ Kind_LinkedWord
Definition: docparser.h:132
DocHtmlListItem
Node representing a HTML list item.
Definition: docparser.h:1304
DocVerbatim::context
QCString context() const
Definition: docparser.h:548
EmojiEntityMapper::instance
static EmojiEntityMapper * instance()
Returns the one and only instance of the Emoji entity mapper.
Definition: emoji.cpp:1539
err
void err(const char *fmt,...)
Definition: message.cpp:238
DocSimpleSect::Since
@ Since
Definition: docparser.h:1132
DocInclude
Node representing an included text block from file.
Definition: docparser.h:581
DocSimpleList
Node representing a simple list.
Definition: docparser.h:1099
DocVerbatim::Dot
@ Dot
Definition: docparser.h:541
DocSimpleSect::Version
@ Version
Definition: docparser.h:1132
ManDocVisitor::m_t
FTextStream & m_t
Definition: mandocvisitor.h:155
DocDotFile
Node representing a dot file.
Definition: docparser.h:816
extractBlock
QCString extractBlock(const QCString text, const QCString marker)
Returns the section of text, in between a pair of markers.
Definition: util.cpp:7830
code.h
ManDocVisitor::m_firstCol
bool m_firstCol
Definition: mandocvisitor.h:159
Translator::trReturns
virtual QCString trReturns()=0
DocIncOperator::context
QCString context() const
Definition: docparser.h:649
DocStyleChange::Div
@ Div
Definition: docparser.h:383
DocImage
Node representing an image.
Definition: docparser.h:785
DocIncOperator::isLast
bool isLast() const
Definition: docparser.h:652
DocStyleChange::Ins
@ Ins
Definition: docparser.h:387
DocVerbatim::PlantUML
@ PlantUML
Definition: docparser.h:541
DocVerbatim::XmlOnly
@ XmlOnly
Definition: docparser.h:541
DocHtmlTable
Node representing a HTML table.
Definition: docparser.h:1423
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:134
DocHtmlRow
Node representing a HTML table row.
Definition: docparser.h:1387
DocIncOperator::isFirst
bool isFirst() const
Definition: docparser.h:651
DocLinkedWord::word
QCString word() const
Definition: docparser.h:261
DocWord::word
QCString word() const
Definition: docparser.h:243
DocSimpleSect::Rcs
@ Rcs
Definition: docparser.h:1133
DocSimpleSect::Invar
@ Invar
Definition: docparser.h:1133
DocNode
Abstract node interface with type information.
Definition: docparser.h:87
ManDocVisitor::visit
void visit(DocWord *)
Definition: mandocvisitor.cpp:46
DocVerbatim::type
Type type() const
Definition: docparser.h:546
DocInclude::LatexInclude
@ LatexInclude
Definition: docparser.h:583
FileDef
A model of a file symbol.
Definition: filedef.h:65
ParserManager::getCodeParser
CodeParserInterface & getCodeParser(const char *extension)
Gets the interface to the parser associated with given extension.
Definition: parserintf.h:227
DocInclude::file
QCString file() const
Definition: docparser.h:594
qfileinfo.h
Translator::trNote
virtual QCString trNote()=0
DocIncOperator::includeFileName
QCString includeFileName() const
Definition: docparser.h:657
Translator::trReturnValues
virtual QCString trReturnValues()=0
getFileNameExtension
QCString getFileNameExtension(QCString fn)
Definition: util.cpp:6893
DocVerbatim::LatexOnly
@ LatexOnly
Definition: docparser.h:541
TRUE
@ TRUE
Definition: mscgen_bool.h:29
outputgen.h
FALSE
@ FALSE
Definition: mscgen_bool.h:28
dot.h
DocVerbatim::Verbatim
@ Verbatim
Definition: docparser.h:541
DocIncOperator::type
Type type() const
Definition: docparser.h:633
DocSimpleSect::Date
@ Date
Definition: docparser.h:1132
Translator::trInvariant
virtual QCString trInvariant()=0
DocIncOperator::line
int line() const
Definition: docparser.h:645
ManDocVisitor::pushEnabled
void pushEnabled()
Definition: mandocvisitor.cpp:1085
ws
QTextStream & ws(QTextStream &s)
Definition: qtextstream.cpp:2042
Translator::trCopyright
virtual QCString trCopyright()=0
QString::utf8
QCString utf8() const
Definition: qstring.cpp:14558
DocStyleChange::Superscript
@ Superscript
Definition: docparser.h:380
DocStyleChange::Small
@ Small
Definition: docparser.h:378
message.h
DocNode::Kind_ParamSect
@ Kind_ParamSect
Definition: docparser.h:133
DocSimpleSect::type
Type type() const
Definition: docparser.h:1138
DocStyleChange::Italic
@ Italic
Definition: docparser.h:375
Translator::trWarning
virtual QCString trWarning()=0
QCString::at
char & at(uint i) const
Returns a reference to the character at index i.
Definition: qcstring.h:329
ManDocVisitor::filter
void filter(const char *str)
Definition: mandocvisitor.cpp:1066
DocTitle
Node representing a simple section title.
Definition: docparser.h:750
DocVerbatim::Msc
@ Msc
Definition: docparser.h:541
ManDocVisitor::m_insidePre
bool m_insidePre
Definition: mandocvisitor.h:157
DocParamSect
Node representing a parameter section.
Definition: docparser.h:1167
DocXRefItem
Node representing an item of a cross-referenced list.
Definition: docparser.h:763
Translator::trDate
virtual QCString trDate()=0
theTranslator
Translator * theTranslator
Copyright (C) 1997-2015 by Dimitri van Heesch.
Definition: language.cpp:157
Translator::trTemplateParameters
virtual QCString trTemplateParameters()=0
DocSimpleSect::Unknown
@ Unknown
Definition: docparser.h:1132
DocVerbatim::RtfOnly
@ RtfOnly
Definition: docparser.h:541
DocCite::text
QCString text() const
Definition: docparser.h:358
DocAutoList
Node representing an auto List.
Definition: docparser.h:717
CodeParserInterface::parseCode
virtual void parseCode(CodeOutputInterface &codeOutIntf, const char *scopeName, const QCString &input, SrcLangExt lang, bool isExampleBlock, const char *exampleName=0, FileDef *fileDef=0, int startLine=-1, int endLine=-1, bool inlineFragment=FALSE, const MemberDef *memberDef=0, bool showLineNumbers=TRUE, const Definition *searchCtx=0, bool collectXRefs=TRUE)=0
Parses a source file or fragment with the goal to produce highlighted and cross-referenced output.
DocIncOperator
Node representing a include/dontinclude operator block.
Definition: docparser.h:624
doxygen.h
DocSimpleSect::Note
@ Note
Definition: docparser.h:1133
parserintf.h
DocParamList
Node representing a parameter list.
Definition: docparser.h:1242
DocVerbatim::exampleFile
QCString exampleFile() const
Definition: docparser.h:551
DocStyleChange::Center
@ Center
Definition: docparser.h:377
DocStyleChange::Underline
@ Underline
Definition: docparser.h:385
language.h
DocWhiteSpace
Node representing some amount of white space.
Definition: docparser.h:513
QListIterator::current
type * current() const
Definition: qlist.h:147
DocURL::url
QCString url() const
Definition: docparser.h:287
DocHtmlDescList
Node representing a Html description list.
Definition: docparser.h:1011
DocSimpleSect::See
@ See
Definition: docparser.h:1132
DocSection
Node representing a normal section.
Definition: docparser.h:1025
QStack::push
void push(const type *d)
Definition: qstack.h:58
docparser.h
DocIncOperator::Skip
@ Skip
Definition: docparser.h:626
Translator::trParameters
virtual QCString trParameters()=0
DocInclude::DocbookInclude
@ DocbookInclude
Definition: docparser.h:585
DocSimpleSect::Remark
@ Remark
Definition: docparser.h:1133
DocSimpleSect::Return
@ Return
Definition: docparser.h:1132
CodeOutputInterface
Output interface for code parser.
Definition: outputgen.h:60
ManDocVisitor::ManDocVisitor
ManDocVisitor(FTextStream &t, CodeOutputInterface &ci, const char *langExt)
Copyright (C) 1997-2015 by Dimitri van Heesch.
Definition: mandocvisitor.cpp:35
DocInclude::IncludeDoc
@ IncludeDoc
Definition: docparser.h:584
DocStyleChange::Strike
@ Strike
Definition: docparser.h:384
filedef.h
ManDocVisitor::m_indent
int m_indent
Definition: mandocvisitor.h:160
QTextStream::fill
int fill() const
Definition: qtextstream.h:253
DocHtmlList
Node representing a Html list.
Definition: docparser.h:1110
DocIncOperator::exampleFile
QCString exampleFile() const
Definition: docparser.h:656
DocStyleChange::Del
@ Del
Definition: docparser.h:386
DocHtmlHeader::level
int level() const
Definition: docparser.h:985
HtmlEntityMapper::instance
static HtmlEntityMapper * instance()
Returns the one and only instance of the HTML entity mapper.
Definition: htmlentity.cpp:343
Translator::trAuthor
virtual QCString trAuthor(bool first_capital, bool singular)=0
DocInclude::isExample
bool isExample() const
Definition: docparser.h:605
DocVerbatim::HtmlOnly
@ HtmlOnly
Definition: docparser.h:541
DocDiaFile
Node representing a dia file.
Definition: docparser.h:862
DocStyleChange::Preformatted
@ Preformatted
Definition: docparser.h:381
DocSimpleSect
Node representing a simple section.
Definition: docparser.h:1128
DocStyleChange
Node representing a style change.
Definition: docparser.h:372
DocVerbatim::language
QCString language() const
Definition: docparser.h:553
DocStyleChange::Span
@ Span
Definition: docparser.h:382
DocCite::file
QCString file() const
Definition: docparser.h:354
ManDocVisitor::visitPre
void visitPre(DocAutoList *)
Definition: mandocvisitor.cpp:468
Translator::trPostcondition
virtual QCString trPostcondition()=0
DocParamSect::TemplateParam
@ TemplateParam
Definition: docparser.h:1172
DocInclude::DontIncWithLines
@ DontIncWithLines
Definition: docparser.h:585
DocPara
Node representing a paragraph in the documentation tree.
Definition: docparser.h:1195
DocVisitor_Man
const int DocVisitor_Man
Definition: docvisitor.h:27
DocSection::level
int level() const
Definition: docparser.h:1030
DocSimpleSect::Pre
@ Pre
Definition: docparser.h:1133
DocStyleChange::Bold
@ Bold
Definition: docparser.h:374
QListIterator::toFirst
type * toFirst()
Definition: qlist.h:136
Translator::trPrecondition
virtual QCString trPrecondition()=0
QFileInfo::fileName
QString fileName() const
Definition: qfileinfo_unix.cpp:387
DocStyleChange::Code
@ Code
Definition: docparser.h:376
DocParamSect::Param
@ Param
Definition: docparser.h:1172
DocLineBreak
Node representing a line break.
Definition: docparser.h:301
DocText
Root node of a text fragment.
Definition: docparser.h:1466
DocInclude::IncWithLines
@ IncWithLines
Definition: docparser.h:584
DocAnchor
Node representing an anchor.
Definition: docparser.h:332
DocHtmlDescTitle
Node representing a Html description item.
Definition: docparser.h:997
DocSymbol::symbol
SymType symbol() const
Definition: docparser.h:487
DocSimpleSect::Authors
@ Authors
Definition: docparser.h:1132
Translator::trVersion
virtual QCString trVersion()=0
DocVisitor
Abstract visitor that participates in the visitor pattern.
Definition: docvisitor.h:91
DocFormula::text
QCString text() const
Definition: docparser.h:681
EmojiEntityMapper::name
const char * name(int index) const
Access routine to the name of the Emoji entity.
Definition: emoji.cpp:1594
DocWhiteSpace::chars
QCString chars() const
Definition: docparser.h:518
DocHorRuler
Node representing a horizontal ruler.
Definition: docparser.h:317
DocCite
Node representing a citation of some bibliographic reference.
Definition: docparser.h:350
DocEmoji
Node representing a n emoji.
Definition: docparser.h:498
DocLinkedWord
Node representing a word that can be linked to something.
Definition: docparser.h:256
DocIndexEntry
Node representing an entry in the index.
Definition: docparser.h:696
DocEmoji::name
QCString name() const
Definition: docparser.h:501
DocAutoListItem::itemNumber
int itemNumber() const
Definition: docparser.h:738
DocInclude::DontInclude
@ DontInclude
Definition: docparser.h:583
DocInclude::HtmlInclude
@ HtmlInclude
Definition: docparser.h:583
DocHtmlDescData
Node representing a HTML description data.
Definition: docparser.h:1321
emoji.h
QStack::pop
type * pop()
Definition: qstack.h:59
ManDocVisitor::visitPost
void visitPost(DocAutoList *)
Definition: mandocvisitor.cpp:474
DocInternal
Node representing an internal section of documentation.
Definition: docparser.h:1076
DocIncOperator::isExample
bool isExample() const
Definition: docparser.h:655
ASSERT
#define ASSERT(x)
Definition: qglobal.h:591
ManDocVisitor::m_langExt
QCString m_langExt
Definition: mandocvisitor.h:162
DocVerbatim::text
QCString text() const
Definition: docparser.h:547
DocSecRefList
Node representing a list of section references.
Definition: docparser.h:1065
ManDocVisitor::m_hide
bool m_hide
Definition: mandocvisitor.h:158
DocXRefItem::title
QCString title() const
Definition: docparser.h:769
DocParamList::parameters
const QList< DocNode > & parameters()
Definition: docparser.h:1253
DocVerbatim::DocbookOnly
@ DocbookOnly
Definition: docparser.h:541
DocIncOperator::showLineNo
bool showLineNo() const
Definition: docparser.h:646
DocRoot
Root node of documentation tree.
Definition: docparser.h:1476
DocHtmlCaption
Node representing a HTML table caption.
Definition: docparser.h:1368
DocSimpleSect::Attention
@ Attention
Definition: docparser.h:1133
DocMscFile
Node representing a msc file.
Definition: docparser.h:839
endl
QTextStream & endl(QTextStream &s)
Definition: qtextstream.cpp:2030
ManDocVisitor::m_ci
CodeOutputInterface & m_ci
Definition: mandocvisitor.h:156
DocInclude::XmlInclude
@ XmlInclude
Definition: docparser.h:585
DocSimpleSect::Warning
@ Warning
Definition: docparser.h:1133
htmlentity.h
DocHtmlBlockQuote
Node representing an HTML blockquote.
Definition: docparser.h:1452
DocIncOperator::text
QCString text() const
Definition: docparser.h:647
DocVhdlFlow
Node representing a VHDL flow chart.
Definition: docparser.h:885
mandocvisitor.h
DocNode::parent
DocNode * parent() const
Definition: docparser.h:156
DocInclude::ManInclude
@ ManInclude
Definition: docparser.h:585
util.h
Copyright (C) 1997-2015 by Dimitri van Heesch.
DocSimpleSect::Copyright
@ Copyright
Definition: docparser.h:1133
DocVerbatim::isExample
bool isExample() const
Definition: docparser.h:550
DocParamSect::RetVal
@ RetVal
Definition: docparser.h:1172
DocInclude::RtfInclude
@ RtfInclude
Definition: docparser.h:585
DocParamSect::Exception
@ Exception
Definition: docparser.h:1172
DocSimpleSect::Author
@ Author
Definition: docparser.h:1132
DocSimpleListItem
Node representing a simple list item.
Definition: docparser.h:1284
DocVerbatim::Code
@ Code
Definition: docparser.h:541
DocHtmlHeader
Node Html heading.
Definition: docparser.h:981
DocRef::targetTitle
QCString targetTitle() const
Definition: docparser.h:925
DocInclude::context
QCString context() const
Definition: docparser.h:603
DocURL
Node representing a URL (or email address)
Definition: docparser.h:283
DocStyleChange::enable
bool enable() const
Definition: docparser.h:398
DocSimpleSect::User
@ User
Definition: docparser.h:1133
Translator::trSeeAlso
virtual QCString trSeeAlso()=0
DocAutoListItem
Node representing an item of a auto list.
Definition: docparser.h:734
DocInclude::Include
@ Include
Definition: docparser.h:583
DocRef::hasLinkText
bool hasLinkText() const
Definition: docparser.h:926
DocFormula
Node representing an item of a cross-referenced list.
Definition: docparser.h:676