Doxygen
PerlModGenerator类 参考
+ PerlModGenerator 的协作图:

Public 成员函数

 PerlModGenerator (bool pretty)
 
void generatePerlModForMember (const MemberDef *md, const Definition *)
 
void generatePerlUserDefinedSection (const Definition *d, const MemberGroupList &mgl)
 
void generatePerlModSection (const Definition *d, MemberList *ml, const QCString &name, const QCString &header=QCString())
 
void addListOfAllMembers (const ClassDef *cd)
 
void addIncludeInfo (const IncludeInfo *ii)
 
void generatePerlModForClass (const ClassDef *cd)
 
void generatePerlModForConcept (const ConceptDef *cd)
 
void generatePerlModForNamespace (const NamespaceDef *nd)
 
void generatePerlModForFile (const FileDef *fd)
 
void generatePerlModForGroup (const GroupDef *gd)
 
void generatePerlModForPage (PageDef *pi)
 
bool createOutputFile (std::ofstream &f, const QCString &s)
 
bool createOutputDir (Dir &perlModDir)
 
bool generateDoxyLatexTex ()
 
bool generateDoxyFormatTex ()
 
bool generateDoxyStructurePM ()
 
bool generateDoxyLatexPL ()
 
bool generateDoxyLatexStructurePL ()
 
bool generateDoxyRules ()
 
bool generateMakefile ()
 
bool generatePerlModOutput ()
 
void generate ()
 

Public 属性

PerlModOutput m_output
 
QCString pathDoxyStructurePM
 
QCString pathDoxyDocsTex
 
QCString pathDoxyFormatTex
 
QCString pathDoxyLatexTex
 
QCString pathDoxyLatexDVI
 
QCString pathDoxyLatexPDF
 
QCString pathDoxyStructureTex
 
QCString pathDoxyDocsPM
 
QCString pathDoxyLatexPL
 
QCString pathDoxyLatexStructurePL
 
QCString pathDoxyRules
 
QCString pathMakefile
 

详细描述

在文件 perlmodgen.cpp1514 行定义.

构造及析构函数说明

◆ PerlModGenerator()

PerlModGenerator::PerlModGenerator ( bool  pretty)
inline

在文件 perlmodgen.cpp1533 行定义.

1533 : m_output(pretty) { }

成员函数说明

◆ addIncludeInfo()

void PerlModGenerator::addIncludeInfo ( const IncludeInfo ii)

在文件 perlmodgen.cpp1808 行定义.

1809 {
1810  if (ii)
1811  {
1812  QCString nm = ii->includeName;
1813  if (nm.isEmpty() && ii->fileDef) nm = ii->fileDef->docName();
1814  if (!nm.isEmpty())
1815  {
1816  m_output.openHash("includes");
1817  m_output.addFieldBoolean("local", ii->local)
1818  .addFieldQuotedString("name", nm)
1819  .closeHash();
1820  }
1821  }
1822 }

引用了 PerlModOutput::addFieldBoolean(), PerlModOutput::addFieldQuotedString(), PerlModOutput::closeHash(), FileDef::docName(), IncludeInfo::fileDef, IncludeInfo::includeName, QCString::isEmpty(), m_output , 以及 PerlModOutput::openHash().

被这些函数引用 generatePerlModForClass() , 以及 generatePerlModForConcept().

◆ addListOfAllMembers()

void PerlModGenerator::addListOfAllMembers ( const ClassDef cd)

在文件 perlmodgen.cpp1753 行定义.

1754 {
1755  m_output.openList("all_members");
1756  for (auto &mni : cd->memberNameInfoLinkedMap())
1757  {
1758  for (auto &mi : *mni)
1759  {
1760  const MemberDef *md=mi->memberDef();
1761  const ClassDef *mcd=md->getClassDef();
1762  const Definition *d=md->getGroupDef();
1763  if (d==0) d = mcd;
1764 
1765  m_output.openHash()
1766  .addFieldQuotedString("name", md->name())
1767  .addFieldQuotedString("virtualness", getVirtualnessName(md->virtualness()))
1768  .addFieldQuotedString("protection", getProtectionName(mi->prot()));
1769 
1770  if (!mi->ambiguityResolutionScope().isEmpty())
1771  m_output.addFieldQuotedString("ambiguity_scope", mi->ambiguityResolutionScope());
1772 
1773  m_output.addFieldQuotedString("scope", mcd->name())
1774  .closeHash();
1775  }
1776  }
1777  m_output.closeList();
1778 }

引用了 PerlModOutput::addFieldQuotedString(), PerlModOutput::closeHash(), PerlModOutput::closeList(), MemberDef::getClassDef(), MemberDef::getGroupDef(), getProtectionName(), getVirtualnessName(), m_output, ClassDef::memberNameInfoLinkedMap(), Definition::name(), PerlModOutput::openHash(), PerlModOutput::openList() , 以及 MemberDef::virtualness().

被这些函数引用 generatePerlModForClass().

◆ createOutputDir()

bool PerlModGenerator::createOutputDir ( Dir perlModDir)

在文件 perlmodgen.cpp2251 行定义.

2252 {
2253  std::string outputDirectory = Config_getString(OUTPUT_DIRECTORY).str();
2254  perlModDir.setPath(outputDirectory+"/perlmod");
2255  if (!perlModDir.exists() && !perlModDir.mkdir(outputDirectory+"/perlmod"))
2256  {
2257  err("Could not create perlmod directory in %s\n",outputDirectory.data());
2258  return false;
2259  }
2260  return true;
2261 }

引用了 Config_getString, err(), Dir::exists(), Dir::mkdir() , 以及 Dir::setPath().

被这些函数引用 generate().

◆ createOutputFile()

bool PerlModGenerator::createOutputFile ( std::ofstream &  f,
const QCString s 
)

在文件 perlmodgen.cpp2240 行定义.

2241 {
2242  f.open(s.str(),std::ofstream::out | std::ofstream::binary);
2243  if (!f.is_open())
2244  {
2245  err("Cannot open file %s for writing!\n", qPrint(s));
2246  return false;
2247  }
2248  return true;
2249 }

引用了 err(), qPrint() , 以及 QCString::str().

被这些函数引用 generateDoxyFormatTex(), generateDoxyLatexPL(), generateDoxyLatexStructurePL(), generateDoxyLatexTex(), generateDoxyRules(), generateDoxyStructurePM(), generateMakefile() , 以及 generatePerlModOutput().

◆ generate()

void PerlModGenerator::generate ( )

在文件 perlmodgen.cpp2910 行定义.

2911 {
2912  // + classes
2913  // + namespaces
2914  // + files
2915  // - packages
2916  // + groups
2917  // + related pages
2918  // - examples
2919 
2920  Dir perlModDir;
2921  if (!createOutputDir(perlModDir))
2922  return;
2923 
2924  bool perlmodLatex = Config_getBool(PERLMOD_LATEX);
2925 
2926  QCString perlModAbsPath = perlModDir.absPath();
2927  pathDoxyDocsPM = perlModAbsPath + "/DoxyDocs.pm";
2928  pathDoxyStructurePM = perlModAbsPath + "/DoxyStructure.pm";
2929  pathMakefile = perlModAbsPath + "/Makefile";
2930  pathDoxyRules = perlModAbsPath + "/doxyrules.make";
2931 
2932  if (perlmodLatex) {
2933  pathDoxyStructureTex = perlModAbsPath + "/doxystructure.tex";
2934  pathDoxyFormatTex = perlModAbsPath + "/doxyformat.tex";
2935  pathDoxyLatexTex = perlModAbsPath + "/doxylatex.tex";
2936  pathDoxyLatexDVI = perlModAbsPath + "/doxylatex.dvi";
2937  pathDoxyLatexPDF = perlModAbsPath + "/doxylatex.pdf";
2938  pathDoxyDocsTex = perlModAbsPath + "/doxydocs.tex";
2939  pathDoxyLatexPL = perlModAbsPath + "/doxylatex.pl";
2940  pathDoxyLatexStructurePL = perlModAbsPath + "/doxylatex-structure.pl";
2941  }
2942 
2943  if (!(generatePerlModOutput()
2945  && generateMakefile()
2946  && generateDoxyRules()))
2947  return;
2948 
2949  if (perlmodLatex) {
2951  && generateDoxyLatexPL()
2953  && generateDoxyFormatTex()))
2954  return;
2955  }
2956 }

引用了 Dir::absPath(), Config_getBool, createOutputDir(), generateDoxyFormatTex(), generateDoxyLatexPL(), generateDoxyLatexStructurePL(), generateDoxyLatexTex(), generateDoxyRules(), generateDoxyStructurePM(), generateMakefile(), generatePerlModOutput(), pathDoxyDocsPM, pathDoxyDocsTex, pathDoxyFormatTex, pathDoxyLatexDVI, pathDoxyLatexPDF, pathDoxyLatexPL, pathDoxyLatexStructurePL, pathDoxyLatexTex, pathDoxyRules, pathDoxyStructurePM, pathDoxyStructureTex , 以及 pathMakefile.

被这些函数引用 generatePerlMod().

◆ generateDoxyFormatTex()

bool PerlModGenerator::generateDoxyFormatTex ( )

在文件 perlmodgen.cpp2723 行定义.

2724 {
2725  std::ofstream doxyFormatTexStream;
2726  if (!createOutputFile(doxyFormatTexStream, pathDoxyFormatTex))
2727  return false;
2728 
2729  doxyFormatTexStream <<
2730  "\\def\\Defcs#1{\\long\\expandafter\\def\\csname#1\\endcsname}\n"
2731  "\\Defcs{Empty}{}\n"
2732  "\\def\\IfEmpty#1{\\expandafter\\ifx\\csname#1\\endcsname\\Empty}\n"
2733  "\n"
2734  "\\def\\StringNode#1{\\Defcs{#1}##1{##1}}\n"
2735  "\\def\\DocNode#1{\\Defcs{#1}##1{##1}}\n"
2736  "\\def\\ListNode#1{\\Defcs{#1}##1{##1}\\Defcs{#1Sep}{}}\n"
2737  "\\def\\HashNode#1{\\Defcs{#1}{}}\n"
2738  "\n"
2739  "\\input{" << pathDoxyStructureTex << "}\n"
2740  "\n"
2741  "\\newbox\\BoxA\n"
2742  "\\dimendef\\DimenA=151\\relax\n"
2743  "\\dimendef\\DimenB=152\\relax\n"
2744  "\\countdef\\ZoneDepth=151\\relax\n"
2745  "\n"
2746  "\\def\\Cs#1{\\csname#1\\endcsname}\n"
2747  "\\def\\Letcs#1{\\expandafter\\let\\csname#1\\endcsname}\n"
2748  "\\def\\Heading#1{\\vskip 4mm\\relax\\textbf{#1}}\n"
2749  "\\def\\See#1{\\begin{flushleft}\\Heading{See also: }#1\\end{flushleft}}\n"
2750  "\n"
2751  "\\def\\Frame#1{\\vskip 3mm\\relax\\fbox{ \\vbox{\\hsize0.95\\hsize\\vskip 1mm\\relax\n"
2752  "\\raggedright#1\\vskip 0.5mm\\relax} }}\n"
2753  "\n"
2754  "\\def\\Zone#1#2#3{%\n"
2755  "\\Defcs{Test#1}{#2}%\n"
2756  "\\Defcs{Emit#1}{#3}%\n"
2757  "\\Defcs{#1}{%\n"
2758  "\\advance\\ZoneDepth1\\relax\n"
2759  "\\Letcs{Mode\\number\\ZoneDepth}0\\relax\n"
2760  "\\Letcs{Present\\number\\ZoneDepth}0\\relax\n"
2761  "\\Cs{Test#1}\n"
2762  "\\expandafter\\if\\Cs{Present\\number\\ZoneDepth}1%\n"
2763  "\\advance\\ZoneDepth-1\\relax\n"
2764  "\\Letcs{Present\\number\\ZoneDepth}1\\relax\n"
2765  "\\expandafter\\if\\Cs{Mode\\number\\ZoneDepth}1%\n"
2766  "\\advance\\ZoneDepth1\\relax\n"
2767  "\\Letcs{Mode\\number\\ZoneDepth}1\\relax\n"
2768  "\\Cs{Emit#1}\n"
2769  "\\advance\\ZoneDepth-1\\relax\\fi\n"
2770  "\\advance\\ZoneDepth1\\relax\\fi\n"
2771  "\\advance\\ZoneDepth-1\\relax}}\n"
2772  "\n"
2773  "\\def\\Member#1#2{%\n"
2774  "\\Defcs{Test#1}{\\Cs{field#1Detailed}\n"
2775  "\\IfEmpty{field#1DetailedDoc}\\else\\Letcs{Present#1}1\\fi}\n"
2776  "\\Defcs{#1}{\\Letcs{Present#1}0\\relax\n"
2777  "\\Cs{Test#1}\\if1\\Cs{Present#1}\\Letcs{Present\\number\\ZoneDepth}1\\relax\n"
2778  "\\if1\\Cs{Mode\\number\\ZoneDepth}#2\\fi\\fi}}\n"
2779  "\n"
2780  "\\def\\TypedefMemberList#1#2{%\n"
2781  "\\Defcs{#1DetailedDoc}##1{\\vskip 5.5mm\\relax##1}%\n"
2782  "\\Defcs{#1Name}##1{\\textbf{##1}}%\n"
2783  "\\Defcs{#1See}##1{\\See{##1}}%\n"
2784  "%\n"
2785  "\\Zone{#1s}{\\Cs{field#1List}}{\\subsubsection{#2}\\Cs{field#1List}}%\n"
2786  "\\Member{#1}{\\Frame{typedef \\Cs{field#1Type} \\Cs{field#1Name}}%\n"
2787  "\\Cs{field#1DetailedDoc}\\Cs{field#1See}\\vskip 5mm\\relax}}%\n"
2788  "\n"
2789  "\\def\\VariableMemberList#1#2{%\n"
2790  "\\Defcs{#1DetailedDoc}##1{\\vskip 5.5mm\\relax##1}%\n"
2791  "\\Defcs{#1Name}##1{\\textbf{##1}}%\n"
2792  "\\Defcs{#1See}##1{\\See{##1}}%\n"
2793  "%\n"
2794  "\\Zone{#1s}{\\Cs{field#1List}}{\\subsubsection{#2}\\Cs{field#1List}}%\n"
2795  "\\Member{#1}{\\Frame{\\Cs{field#1Type}{} \\Cs{field#1Name}}%\n"
2796  "\\Cs{field#1DetailedDoc}\\Cs{field#1See}\\vskip 5mm\\relax}}%\n"
2797  "\n"
2798  "\\def\\FunctionMemberList#1#2{%\n"
2799  "\\Defcs{#1PDParamName}##1{\\textit{##1}}%\n"
2800  "\\Defcs{#1PDParam}{\\Cs{field#1PDParamName}}%\n"
2801  "\\Defcs{#1PDParamsSep}{, }%\n"
2802  "\\Defcs{#1PDBlocksSep}{\\vskip 2mm\\relax}%\n"
2803  "%\n"
2804  "\\Defcs{#1PDBlocks}##1{%\n"
2805  "\\Heading{Parameters:}\\vskip 1.5mm\\relax\n"
2806  "\\DimenA0pt\\relax\n"
2807  "\\Defcs{#1PDBlock}{\\setbox\\BoxA\\hbox{\\Cs{field#1PDParams}}%\n"
2808  "\\ifdim\\DimenA<\\wd\\BoxA\\DimenA\\wd\\BoxA\\fi}%\n"
2809  "##1%\n"
2810  "\\advance\\DimenA3mm\\relax\n"
2811  "\\DimenB\\hsize\\advance\\DimenB-\\DimenA\\relax\n"
2812  "\\Defcs{#1PDBlock}{\\hbox to\\hsize{\\vtop{\\hsize\\DimenA\\relax\n"
2813  "\\Cs{field#1PDParams}}\\hfill\n"
2814  "\\vtop{\\hsize\\DimenB\\relax\\Cs{field#1PDDoc}}}}%\n"
2815  "##1}\n"
2816  "\n"
2817  "\\Defcs{#1ParamName}##1{\\textit{##1}}\n"
2818  "\\Defcs{#1Param}{\\Cs{field#1ParamType}{} \\Cs{field#1ParamName}}\n"
2819  "\\Defcs{#1ParamsSep}{, }\n"
2820  "\n"
2821  "\\Defcs{#1Name}##1{\\textbf{##1}}\n"
2822  "\\Defcs{#1See}##1{\\See{##1}}\n"
2823  "\\Defcs{#1Return}##1{\\Heading{Returns: }##1}\n"
2824  "\\Defcs{field#1Title}{\\Frame{\\Cs{field#1Type}{} \\Cs{field#1Name}(\\Cs{field#1Params})}}%\n"
2825  "%\n"
2826  "\\Zone{#1s}{\\Cs{field#1List}}{\\subsubsection{#2}\\Cs{field#1List}}%\n"
2827  "\\Member{#1}{%\n"
2828  "\\Cs{field#1Title}\\vskip 6mm\\relax\\Cs{field#1DetailedDoc}\n"
2829  "\\Cs{field#1Return}\\Cs{field#1PDBlocks}\\Cs{field#1See}\\vskip 5mm\\relax}}\n"
2830  "\n"
2831  "\\def\\FileDetailed{\\fieldFileDetailedDoc\\par}\n"
2832  "\\def\\ClassDetailed{\\fieldClassDetailedDoc\\par}\n"
2833  "\n"
2834  "\\def\\FileSubzones{\\fieldFileTypedefs\\fieldFileVariables\\fieldFileFunctions}\n"
2835  "\n"
2836  "\\def\\ClassSubzones{%\n"
2837  "\\fieldClassPublicTypedefs\\fieldClassPublicMembers\\fieldClassPublicMethods\n"
2838  "\\fieldClassProtectedTypedefs\\fieldClassProtectedMembers\\fieldClassProtectedMethods\n"
2839  "\\fieldClassPrivateTypedefs\\fieldClassPrivateMembers\\fieldClassPrivateMethods}\n"
2840  "\n"
2841  "\\Member{Page}{\\subsection{\\fieldPageName}\\fieldPageDetailedDoc}\n"
2842  "\n"
2843  "\\TypedefMemberList{FileTypedef}{Typedefs}\n"
2844  "\\VariableMemberList{FileVariable}{Variables}\n"
2845  "\\FunctionMemberList{FileFunction}{Functions}\n"
2846  "\\Zone{File}{\\FileSubzones}{\\subsection{\\fieldFileName}\\fieldFileDetailed\\FileSubzones}\n"
2847  "\n"
2848  "\\TypedefMemberList{ClassPublicTypedef}{Public Typedefs}\n"
2849  "\\TypedefMemberList{ClassProtectedTypedef}{Protected Typedefs}\n"
2850  "\\TypedefMemberList{ClassPrivateTypedef}{Private Typedefs}\n"
2851  "\\VariableMemberList{ClassPublicMember}{Public Members}\n"
2852  "\\VariableMemberList{ClassProtectedMember}{Protected Members}\n"
2853  "\\VariableMemberList{ClassPrivateMember}{Private Members}\n"
2854  "\\FunctionMemberList{ClassPublicMethod}{Public Methods}\n"
2855  "\\FunctionMemberList{ClassProtectedMethod}{Protected Methods}\n"
2856  "\\FunctionMemberList{ClassPrivateMethod}{Private Methods}\n"
2857  "\\Zone{Class}{\\ClassSubzones}{\\subsection{\\fieldClassName}\\fieldClassDetailed\\ClassSubzones}\n"
2858  "\n"
2859  "\\Zone{AllPages}{\\fieldPages}{\\section{Pages}\\fieldPages}\n"
2860  "\\Zone{AllFiles}{\\fieldFiles}{\\section{Files}\\fieldFiles}\n"
2861  "\\Zone{AllClasses}{\\fieldClasses}{\\section{Classes}\\fieldClasses}\n"
2862  "\n"
2863  "\\newlength{\\oldparskip}\n"
2864  "\\newlength{\\oldparindent}\n"
2865  "\\newlength{\\oldfboxrule}\n"
2866  "\n"
2867  "\\ZoneDepth0\\relax\n"
2868  "\\Letcs{Mode0}1\\relax\n"
2869  "\n"
2870  "\\def\\EmitDoxyDocs{%\n"
2871  "\\setlength{\\oldparskip}{\\parskip}\n"
2872  "\\setlength{\\oldparindent}{\\parindent}\n"
2873  "\\setlength{\\oldfboxrule}{\\fboxrule}\n"
2874  "\\setlength{\\parskip}{0cm}\n"
2875  "\\setlength{\\parindent}{0cm}\n"
2876  "\\setlength{\\fboxrule}{1pt}\n"
2877  "\\AllPages\\AllFiles\\AllClasses\n"
2878  "\\setlength{\\parskip}{\\oldparskip}\n"
2879  "\\setlength{\\parindent}{\\oldparindent}\n"
2880  "\\setlength{\\fboxrule}{\\oldfboxrule}}\n";
2881 
2882  return true;
2883 }

引用了 createOutputFile(), pathDoxyFormatTex , 以及 pathDoxyStructureTex.

被这些函数引用 generate().

◆ generateDoxyLatexPL()

bool PerlModGenerator::generateDoxyLatexPL ( )

在文件 perlmodgen.cpp2601 行定义.

2602 {
2603  std::ofstream doxyLatexPLStream;
2604  if (!createOutputFile(doxyLatexPLStream, pathDoxyLatexPL))
2605  return false;
2606 
2607  doxyLatexPLStream <<
2608  "use DoxyStructure;\n"
2609  "use DoxyDocs;\n"
2610  "\n"
2611  "sub latex_quote($) {\n"
2612  "\tmy $text = $_[0];\n"
2613  "\t$text =~ s/\\\\/\\\\textbackslash /g;\n"
2614  "\t$text =~ s/\\|/\\\\textbar /g;\n"
2615  "\t$text =~ s/</\\\\textless /g;\n"
2616  "\t$text =~ s/>/\\\\textgreater /g;\n"
2617  "\t$text =~ s/~/\\\\textasciitilde /g;\n"
2618  "\t$text =~ s/\\^/\\\\textasciicircum /g;\n"
2619  "\t$text =~ s/[\\$&%#_{}]/\\\\$&/g;\n"
2620  "\tprint $text;\n"
2621  "}\n"
2622  "\n"
2623  "sub generate_doc($) {\n"
2624  "\tmy $doc = $_[0];\n"
2625  "\tfor my $item (@$doc) {\n"
2626  "\t\tmy $type = $$item{type};\n"
2627  "\t\tif ($type eq \"text\") {\n"
2628  "\t\t\tlatex_quote($$item{content});\n"
2629  "\t\t} elsif ($type eq \"parbreak\") {\n"
2630  "\t\t\tprint \"\\n\\n\";\n"
2631  "\t\t} elsif ($type eq \"style\") {\n"
2632  "\t\t\tmy $style = $$item{style};\n"
2633  "\t\t\tif ($$item{enable} eq \"yes\") {\n"
2634  "\t\t\t\tif ($style eq \"bold\") { print '\\bfseries'; }\n"
2635  "\t\t\t\tif ($style eq \"italic\") { print '\\itshape'; }\n"
2636  "\t\t\t\tif ($style eq \"code\") { print '\\ttfamily'; }\n"
2637  "\t\t\t} else {\n"
2638  "\t\t\t\tif ($style eq \"bold\") { print '\\mdseries'; }\n"
2639  "\t\t\t\tif ($style eq \"italic\") { print '\\upshape'; }\n"
2640  "\t\t\t\tif ($style eq \"code\") { print '\\rmfamily'; }\n"
2641  "\t\t\t}\n"
2642  "\t\t\tprint '{}';\n"
2643  "\t\t} elsif ($type eq \"symbol\") {\n"
2644  "\t\t\tmy $symbol = $$item{symbol};\n"
2645  "\t\t\tif ($symbol eq \"copyright\") { print '\\copyright'; }\n"
2646  "\t\t\telsif ($symbol eq \"szlig\") { print '\\ss'; }\n"
2647  "\t\t\tprint '{}';\n"
2648  "\t\t} elsif ($type eq \"accent\") {\n"
2649  "\t\t\tmy ($accent) = $$item{accent};\n"
2650  "\t\t\tif ($accent eq \"umlaut\") { print '\\\"'; }\n"
2651  "\t\t\telsif ($accent eq \"acute\") { print '\\\\\\''; }\n"
2652  "\t\t\telsif ($accent eq \"grave\") { print '\\`'; }\n"
2653  "\t\t\telsif ($accent eq \"circ\") { print '\\^'; }\n"
2654  "\t\t\telsif ($accent eq \"tilde\") { print '\\~'; }\n"
2655  "\t\t\telsif ($accent eq \"cedilla\") { print '\\c'; }\n"
2656  "\t\t\telsif ($accent eq \"ring\") { print '\\r'; }\n"
2657  "\t\t\tprint \"{\" . $$item{letter} . \"}\"; \n"
2658  "\t\t} elsif ($type eq \"list\") {\n"
2659  "\t\t\tmy $env = ($$item{style} eq \"ordered\") ? \"enumerate\" : \"itemize\";\n"
2660  "\t\t\tprint \"\\n\\\\begin{\" . $env .\"}\";\n"
2661  "\t\t \tfor my $subitem (@{$$item{content}}) {\n"
2662  "\t\t\t\tprint \"\\n\\\\item \";\n"
2663  "\t\t\t\tgenerate_doc($subitem);\n"
2664  "\t\t \t}\n"
2665  "\t\t\tprint \"\\n\\\\end{\" . $env .\"}\";\n"
2666  "\t\t} elsif ($type eq \"url\") {\n"
2667  "\t\t\tlatex_quote($$item{content});\n"
2668  "\t\t}\n"
2669  "\t}\n"
2670  "}\n"
2671  "\n"
2672  "sub generate($$) {\n"
2673  "\tmy ($item, $node) = @_;\n"
2674  "\tmy ($type, $name) = @$node[0, 1];\n"
2675  "\tif ($type eq \"string\") {\n"
2676  "\t\tprint \"\\\\\" . $name . \"{\";\n"
2677  "\t\tlatex_quote($item);\n"
2678  "\t\tprint \"}\";\n"
2679  "\t} elsif ($type eq \"doc\") {\n"
2680  "\t\tif (@$item) {\n"
2681  "\t\t\tprint \"\\\\\" . $name . \"{\";\n"
2682  "\t\t\tgenerate_doc($item);\n"
2683  "\t\t\tprint \"}%\\n\";\n"
2684  "\t\t} else {\n"
2685  "#\t\t\tprint \"\\\\\" . $name . \"Empty%\\n\";\n"
2686  "\t\t}\n"
2687  "\t} elsif ($type eq \"hash\") {\n"
2688  "\t\tmy ($key, $value);\n"
2689  "\t\twhile (($key, $subnode) = each %{$$node[2]}) {\n"
2690  "\t\t\tmy $subname = $$subnode[1];\n"
2691  "\t\t\tprint \"\\\\Defcs{field\" . $subname . \"}{\";\n"
2692  "\t\t\tif ($$item{$key}) {\n"
2693  "\t\t\t\tgenerate($$item{$key}, $subnode);\n"
2694  "\t\t\t} else {\n"
2695  "#\t\t\t\t\tprint \"\\\\\" . $subname . \"Empty%\\n\";\n"
2696  "\t\t\t}\n"
2697  "\t\t\tprint \"}%\\n\";\n"
2698  "\t\t}\n"
2699  "\t\tprint \"\\\\\" . $name . \"%\\n\";\n"
2700  "\t} elsif ($type eq \"list\") {\n"
2701  "\t\tmy $index = 0;\n"
2702  "\t\tif (@$item) {\n"
2703  "\t\t\tprint \"\\\\\" . $name . \"{%\\n\";\n"
2704  "\t\t\tfor my $subitem (@$item) {\n"
2705  "\t\t\t\tif ($index) {\n"
2706  "\t\t\t\t\tprint \"\\\\\" . $name . \"Sep%\\n\";\n"
2707  "\t\t\t\t}\n"
2708  "\t\t\t\tgenerate($subitem, $$node[2]);\n"
2709  "\t\t\t\t$index++;\n"
2710  "\t\t\t}\n"
2711  "\t\t\tprint \"}%\\n\";\n"
2712  "\t\t} else {\n"
2713  "#\t\t\tprint \"\\\\\" . $name . \"Empty%\\n\";\n"
2714  "\t\t}\n"
2715  "\t}\n"
2716  "}\n"
2717  "\n"
2718  "generate($doxydocs, $doxystructure);\n";
2719 
2720  return true;
2721 }

引用了 createOutputFile() , 以及 pathDoxyLatexPL.

被这些函数引用 generate().

◆ generateDoxyLatexStructurePL()

bool PerlModGenerator::generateDoxyLatexStructurePL ( )

在文件 perlmodgen.cpp2568 行定义.

2569 {
2570  std::ofstream doxyLatexStructurePLStream;
2571  if (!createOutputFile(doxyLatexStructurePLStream, pathDoxyLatexStructurePL))
2572  return false;
2573 
2574  doxyLatexStructurePLStream <<
2575  "use DoxyStructure;\n"
2576  "\n"
2577  "sub process($) {\n"
2578  "\tmy $node = $_[0];\n"
2579  "\tmy ($type, $name) = @$node[0, 1];\n"
2580  "\tmy $command;\n"
2581  "\tif ($type eq \"string\") { $command = \"String\" }\n"
2582  "\telsif ($type eq \"doc\") { $command = \"Doc\" }\n"
2583  "\telsif ($type eq \"hash\") {\n"
2584  "\t\t$command = \"Hash\";\n"
2585  "\t\tfor my $subnode (values %{$$node[2]}) {\n"
2586  "\t\t\tprocess($subnode);\n"
2587  "\t\t}\n"
2588  "\t}\n"
2589  "\telsif ($type eq \"list\") {\n"
2590  "\t\t$command = \"List\";\n"
2591  "\t\tprocess($$node[2]);\n"
2592  "\t}\n"
2593  "\tprint \"\\\\\" . $command . \"Node{\" . $name . \"}%\\n\";\n"
2594  "}\n"
2595  "\n"
2596  "process($doxystructure);\n";
2597 
2598  return true;
2599 }

引用了 createOutputFile() , 以及 pathDoxyLatexStructurePL.

被这些函数引用 generate().

◆ generateDoxyLatexTex()

bool PerlModGenerator::generateDoxyLatexTex ( )

在文件 perlmodgen.cpp2885 行定义.

2886 {
2887  std::ofstream doxyLatexTexStream;
2888  if (!createOutputFile(doxyLatexTexStream, pathDoxyLatexTex))
2889  return false;
2890 
2891  doxyLatexTexStream <<
2892  "\\documentclass[a4paper,12pt]{article}\n"
2893  "\\usepackage[latin1]{inputenc}\n"
2894  "\\usepackage[none]{hyphenat}\n"
2895  "\\usepackage[T1]{fontenc}\n"
2896  "\\usepackage{hyperref}\n"
2897  "\\usepackage{times}\n"
2898  "\n"
2899  "\\input{doxyformat}\n"
2900  "\n"
2901  "\\begin{document}\n"
2902  "\\input{" << pathDoxyDocsTex << "}\n"
2903  "\\sloppy\n"
2904  "\\EmitDoxyDocs\n"
2905  "\\end{document}\n";
2906 
2907  return true;
2908 }

引用了 createOutputFile(), pathDoxyDocsTex , 以及 pathDoxyLatexTex.

被这些函数引用 generate().

◆ generateDoxyRules()

bool PerlModGenerator::generateDoxyRules ( )

在文件 perlmodgen.cpp2446 行定义.

2447 {
2448  std::ofstream doxyRulesStream;
2449  if (!createOutputFile(doxyRulesStream, pathDoxyRules))
2450  return false;
2451 
2452  bool perlmodLatex = Config_getBool(PERLMOD_LATEX);
2453  QCString prefix = Config_getString(PERLMOD_MAKEVAR_PREFIX);
2454 
2455  doxyRulesStream <<
2456  prefix << "DOXY_EXEC_PATH = " << pathDoxyExec << "\n" <<
2457  prefix << "DOXYFILE = " << pathDoxyfile << "\n" <<
2458  prefix << "DOXYDOCS_PM = " << pathDoxyDocsPM << "\n" <<
2459  prefix << "DOXYSTRUCTURE_PM = " << pathDoxyStructurePM << "\n" <<
2460  prefix << "DOXYRULES = " << pathDoxyRules << "\n";
2461  if (perlmodLatex)
2462  doxyRulesStream <<
2463  prefix << "DOXYLATEX_PL = " << pathDoxyLatexPL << "\n" <<
2464  prefix << "DOXYLATEXSTRUCTURE_PL = " << pathDoxyLatexStructurePL << "\n" <<
2465  prefix << "DOXYSTRUCTURE_TEX = " << pathDoxyStructureTex << "\n" <<
2466  prefix << "DOXYDOCS_TEX = " << pathDoxyDocsTex << "\n" <<
2467  prefix << "DOXYFORMAT_TEX = " << pathDoxyFormatTex << "\n" <<
2468  prefix << "DOXYLATEX_TEX = " << pathDoxyLatexTex << "\n" <<
2469  prefix << "DOXYLATEX_DVI = " << pathDoxyLatexDVI << "\n" <<
2470  prefix << "DOXYLATEX_PDF = " << pathDoxyLatexPDF << "\n";
2471 
2472  doxyRulesStream <<
2473  "\n"
2474  ".PHONY: clean-perlmod\n"
2475  "clean-perlmod::\n"
2476  "\trm -f $(" << prefix << "DOXYSTRUCTURE_PM) \\\n"
2477  "\t$(" << prefix << "DOXYDOCS_PM)";
2478  if (perlmodLatex)
2479  doxyRulesStream <<
2480  " \\\n"
2481  "\t$(" << prefix << "DOXYLATEX_PL) \\\n"
2482  "\t$(" << prefix << "DOXYLATEXSTRUCTURE_PL) \\\n"
2483  "\t$(" << prefix << "DOXYDOCS_TEX) \\\n"
2484  "\t$(" << prefix << "DOXYSTRUCTURE_TEX) \\\n"
2485  "\t$(" << prefix << "DOXYFORMAT_TEX) \\\n"
2486  "\t$(" << prefix << "DOXYLATEX_TEX) \\\n"
2487  "\t$(" << prefix << "DOXYLATEX_PDF) \\\n"
2488  "\t$(" << prefix << "DOXYLATEX_DVI) \\\n"
2489  "\t$(addprefix $(" << prefix << "DOXYLATEX_TEX:tex=),out aux log)";
2490  doxyRulesStream << "\n\n";
2491 
2492  doxyRulesStream <<
2493  "$(" << prefix << "DOXYRULES) \\\n"
2494  "$(" << prefix << "DOXYMAKEFILE) \\\n"
2495  "$(" << prefix << "DOXYSTRUCTURE_PM) \\\n"
2496  "$(" << prefix << "DOXYDOCS_PM)";
2497  if (perlmodLatex) {
2498  doxyRulesStream <<
2499  " \\\n"
2500  "$(" << prefix << "DOXYLATEX_PL) \\\n"
2501  "$(" << prefix << "DOXYLATEXSTRUCTURE_PL) \\\n"
2502  "$(" << prefix << "DOXYFORMAT_TEX) \\\n"
2503  "$(" << prefix << "DOXYLATEX_TEX)";
2504  }
2505  doxyRulesStream <<
2506  ": \\\n"
2507  "\t$(" << prefix << "DOXYFILE)\n"
2508  "\tcd $(" << prefix << "DOXY_EXEC_PATH) ; doxygen \"$<\"\n";
2509 
2510  if (perlmodLatex) {
2511  doxyRulesStream <<
2512  "\n"
2513  "$(" << prefix << "DOXYDOCS_TEX): \\\n"
2514  "$(" << prefix << "DOXYLATEX_PL) \\\n"
2515  "$(" << prefix << "DOXYDOCS_PM)\n"
2516  "\tperl -I\"$(<D)\" \"$<\" >\"$@\"\n"
2517  "\n"
2518  "$(" << prefix << "DOXYSTRUCTURE_TEX): \\\n"
2519  "$(" << prefix << "DOXYLATEXSTRUCTURE_PL) \\\n"
2520  "$(" << prefix << "DOXYSTRUCTURE_PM)\n"
2521  "\tperl -I\"$(<D)\" \"$<\" >\"$@\"\n"
2522  "\n"
2523  "$(" << prefix << "DOXYLATEX_PDF) \\\n"
2524  "$(" << prefix << "DOXYLATEX_DVI): \\\n"
2525  "$(" << prefix << "DOXYLATEX_TEX) \\\n"
2526  "$(" << prefix << "DOXYFORMAT_TEX) \\\n"
2527  "$(" << prefix << "DOXYSTRUCTURE_TEX) \\\n"
2528  "$(" << prefix << "DOXYDOCS_TEX)\n"
2529  "\n"
2530  "$(" << prefix << "DOXYLATEX_PDF): \\\n"
2531  "$(" << prefix << "DOXYLATEX_TEX)\n"
2532  "\tpdflatex -interaction=nonstopmode \"$<\"\n"
2533  "\n"
2534  "$(" << prefix << "DOXYLATEX_DVI): \\\n"
2535  "$(" << prefix << "DOXYLATEX_TEX)\n"
2536  "\tlatex -interaction=nonstopmode \"$<\"\n";
2537  }
2538 
2539  return true;
2540 }

引用了 Config_getBool, Config_getString, createOutputFile(), pathDoxyDocsPM, pathDoxyDocsTex, pathDoxyExec, pathDoxyfile, pathDoxyFormatTex, pathDoxyLatexDVI, pathDoxyLatexPDF, pathDoxyLatexPL, pathDoxyLatexStructurePL, pathDoxyLatexTex, pathDoxyRules, pathDoxyStructurePM , 以及 pathDoxyStructureTex.

被这些函数引用 generate().

◆ generateDoxyStructurePM()

bool PerlModGenerator::generateDoxyStructurePM ( )

在文件 perlmodgen.cpp2263 行定义.

2264 {
2265  std::ofstream doxyModelPMStream;
2266  if (!createOutputFile(doxyModelPMStream, pathDoxyStructurePM))
2267  return false;
2268 
2269  doxyModelPMStream <<
2270  "sub memberlist($) {\n"
2271  " my $prefix = $_[0];\n"
2272  " return\n"
2273  "\t[ \"hash\", $prefix . \"s\",\n"
2274  "\t {\n"
2275  "\t members =>\n"
2276  "\t [ \"list\", $prefix . \"List\",\n"
2277  "\t\t[ \"hash\", $prefix,\n"
2278  "\t\t {\n"
2279  "\t\t kind => [ \"string\", $prefix . \"Kind\" ],\n"
2280  "\t\t name => [ \"string\", $prefix . \"Name\" ],\n"
2281  "\t\t static => [ \"string\", $prefix . \"Static\" ],\n"
2282  "\t\t virtualness => [ \"string\", $prefix . \"Virtualness\" ],\n"
2283  "\t\t protection => [ \"string\", $prefix . \"Protection\" ],\n"
2284  "\t\t type => [ \"string\", $prefix . \"Type\" ],\n"
2285  "\t\t parameters =>\n"
2286  "\t\t [ \"list\", $prefix . \"Params\",\n"
2287  "\t\t\t[ \"hash\", $prefix . \"Param\",\n"
2288  "\t\t\t {\n"
2289  "\t\t\t declaration_name => [ \"string\", $prefix . \"ParamName\" ],\n"
2290  "\t\t\t type => [ \"string\", $prefix . \"ParamType\" ],\n"
2291  "\t\t\t },\n"
2292  "\t\t\t],\n"
2293  "\t\t ],\n"
2294  "\t\t detailed =>\n"
2295  "\t\t [ \"hash\", $prefix . \"Detailed\",\n"
2296  "\t\t\t{\n"
2297  "\t\t\t doc => [ \"doc\", $prefix . \"DetailedDoc\" ],\n"
2298  "\t\t\t return => [ \"doc\", $prefix . \"Return\" ],\n"
2299  "\t\t\t see => [ \"doc\", $prefix . \"See\" ],\n"
2300  "\t\t\t params =>\n"
2301  "\t\t\t [ \"list\", $prefix . \"PDBlocks\",\n"
2302  "\t\t\t [ \"hash\", $prefix . \"PDBlock\",\n"
2303  "\t\t\t\t{\n"
2304  "\t\t\t\t parameters =>\n"
2305  "\t\t\t\t [ \"list\", $prefix . \"PDParams\",\n"
2306  "\t\t\t\t [ \"hash\", $prefix . \"PDParam\",\n"
2307  "\t\t\t\t\t{\n"
2308  "\t\t\t\t\t name => [ \"string\", $prefix . \"PDParamName\" ],\n"
2309  "\t\t\t\t\t},\n"
2310  "\t\t\t\t ],\n"
2311  "\t\t\t\t ],\n"
2312  "\t\t\t\t doc => [ \"doc\", $prefix . \"PDDoc\" ],\n"
2313  "\t\t\t\t},\n"
2314  "\t\t\t ],\n"
2315  "\t\t\t ],\n"
2316  "\t\t\t},\n"
2317  "\t\t ],\n"
2318  "\t\t },\n"
2319  "\t\t],\n"
2320  "\t ],\n"
2321  "\t },\n"
2322  "\t];\n"
2323  "}\n"
2324  "\n"
2325  "$doxystructure =\n"
2326  " [ \"hash\", \"Root\",\n"
2327  " {\n"
2328  "\tfiles =>\n"
2329  "\t [ \"list\", \"Files\",\n"
2330  "\t [ \"hash\", \"File\",\n"
2331  "\t {\n"
2332  "\t\tname => [ \"string\", \"FileName\" ],\n"
2333  "\t\ttypedefs => memberlist(\"FileTypedef\"),\n"
2334  "\t\tvariables => memberlist(\"FileVariable\"),\n"
2335  "\t\tfunctions => memberlist(\"FileFunction\"),\n"
2336  "\t\tdetailed =>\n"
2337  "\t\t [ \"hash\", \"FileDetailed\",\n"
2338  "\t\t {\n"
2339  "\t\t doc => [ \"doc\", \"FileDetailedDoc\" ],\n"
2340  "\t\t },\n"
2341  "\t\t ],\n"
2342  "\t },\n"
2343  "\t ],\n"
2344  "\t ],\n"
2345  "\tpages =>\n"
2346  "\t [ \"list\", \"Pages\",\n"
2347  "\t [ \"hash\", \"Page\",\n"
2348  "\t {\n"
2349  "\t\tname => [ \"string\", \"PageName\" ],\n"
2350  "\t\tdetailed =>\n"
2351  "\t\t [ \"hash\", \"PageDetailed\",\n"
2352  "\t\t {\n"
2353  "\t\t doc => [ \"doc\", \"PageDetailedDoc\" ],\n"
2354  "\t\t },\n"
2355  "\t\t ],\n"
2356  "\t },\n"
2357  "\t ],\n"
2358  "\t ],\n"
2359  "\tclasses =>\n"
2360  "\t [ \"list\", \"Classes\",\n"
2361  "\t [ \"hash\", \"Class\",\n"
2362  "\t {\n"
2363  "\t\tname => [ \"string\", \"ClassName\" ],\n"
2364  "\t\tpublic_typedefs => memberlist(\"ClassPublicTypedef\"),\n"
2365  "\t\tpublic_methods => memberlist(\"ClassPublicMethod\"),\n"
2366  "\t\tpublic_members => memberlist(\"ClassPublicMember\"),\n"
2367  "\t\tprotected_typedefs => memberlist(\"ClassProtectedTypedef\"),\n"
2368  "\t\tprotected_methods => memberlist(\"ClassProtectedMethod\"),\n"
2369  "\t\tprotected_members => memberlist(\"ClassProtectedMember\"),\n"
2370  "\t\tprivate_typedefs => memberlist(\"ClassPrivateTypedef\"),\n"
2371  "\t\tprivate_methods => memberlist(\"ClassPrivateMethod\"),\n"
2372  "\t\tprivate_members => memberlist(\"ClassPrivateMember\"),\n"
2373  "\t\tdetailed =>\n"
2374  "\t\t [ \"hash\", \"ClassDetailed\",\n"
2375  "\t\t {\n"
2376  "\t\t doc => [ \"doc\", \"ClassDetailedDoc\" ],\n"
2377  "\t\t },\n"
2378  "\t\t ],\n"
2379  "\t },\n"
2380  "\t ],\n"
2381  "\t ],\n"
2382  "\tgroups =>\n"
2383  "\t [ \"list\", \"Groups\",\n"
2384  "\t [ \"hash\", \"Group\",\n"
2385  "\t {\n"
2386  "\t\tname => [ \"string\", \"GroupName\" ],\n"
2387  "\t\ttitle => [ \"string\", \"GroupTitle\" ],\n"
2388  "\t\tfiles =>\n"
2389  "\t\t [ \"list\", \"Files\",\n"
2390  "\t\t [ \"hash\", \"File\",\n"
2391  "\t\t {\n"
2392  "\t\t name => [ \"string\", \"Filename\" ]\n"
2393  "\t\t }\n"
2394  "\t\t ],\n"
2395  "\t\t ],\n"
2396  "\t\tclasses =>\n"
2397  "\t\t [ \"list\", \"Classes\",\n"
2398  "\t\t [ \"hash\", \"Class\",\n"
2399  "\t\t {\n"
2400  "\t\t name => [ \"string\", \"Classname\" ]\n"
2401  "\t\t }\n"
2402  "\t\t ],\n"
2403  "\t\t ],\n"
2404  "\t\tnamespaces =>\n"
2405  "\t\t [ \"list\", \"Namespaces\",\n"
2406  "\t\t [ \"hash\", \"Namespace\",\n"
2407  "\t\t {\n"
2408  "\t\t name => [ \"string\", \"NamespaceName\" ]\n"
2409  "\t\t }\n"
2410  "\t\t ],\n"
2411  "\t\t ],\n"
2412  "\t\tpages =>\n"
2413  "\t\t [ \"list\", \"Pages\",\n"
2414  "\t\t [ \"hash\", \"Page\","
2415  "\t\t {\n"
2416  "\t\t title => [ \"string\", \"PageName\" ]\n"
2417  "\t\t }\n"
2418  "\t\t ],\n"
2419  "\t\t ],\n"
2420  "\t\tgroups =>\n"
2421  "\t\t [ \"list\", \"Groups\",\n"
2422  "\t\t [ \"hash\", \"Group\",\n"
2423  "\t\t {\n"
2424  "\t\t title => [ \"string\", \"GroupName\" ]\n"
2425  "\t\t }\n"
2426  "\t\t ],\n"
2427  "\t\t ],\n"
2428  "\t\tfunctions => memberlist(\"GroupFunction\"),\n"
2429  "\t\tdetailed =>\n"
2430  "\t\t [ \"hash\", \"GroupDetailed\",\n"
2431  "\t\t {\n"
2432  "\t\t doc => [ \"doc\", \"GroupDetailedDoc\" ],\n"
2433  "\t\t },\n"
2434  "\t\t ],\n"
2435  "\t }\n"
2436  "\t ],\n"
2437  "\t ],\n"
2438  " },\n"
2439  " ];\n"
2440  "\n"
2441  "1;\n";
2442 
2443  return true;
2444 }

引用了 createOutputFile() , 以及 pathDoxyStructurePM.

被这些函数引用 generate().

◆ generateMakefile()

bool PerlModGenerator::generateMakefile ( )

在文件 perlmodgen.cpp2542 行定义.

2543 {
2544  std::ofstream makefileStream;
2545  if (!createOutputFile(makefileStream, pathMakefile))
2546  return false;
2547 
2548  bool perlmodLatex = Config_getBool(PERLMOD_LATEX);
2549  QCString prefix = Config_getString(PERLMOD_MAKEVAR_PREFIX);
2550 
2551  makefileStream <<
2552  ".PHONY: default clean" << (perlmodLatex ? " pdf" : "") << "\n"
2553  "default: " << (perlmodLatex ? "pdf" : "clean") << "\n"
2554  "\n"
2555  "include " << pathDoxyRules << "\n"
2556  "\n"
2557  "clean: clean-perlmod\n";
2558 
2559  if (perlmodLatex) {
2560  makefileStream <<
2561  "pdf: $(" << prefix << "DOXYLATEX_PDF)\n"
2562  "dvi: $(" << prefix << "DOXYLATEX_DVI)\n";
2563  }
2564 
2565  return true;
2566 }

引用了 Config_getBool, Config_getString, createOutputFile(), pathDoxyRules , 以及 pathMakefile.

被这些函数引用 generate().

◆ generatePerlModForClass()

void PerlModGenerator::generatePerlModForClass ( const ClassDef cd)

在文件 perlmodgen.cpp1824 行定义.

1825 {
1826  // + brief description
1827  // + detailed description
1828  // + template argument list(s)
1829  // - include file
1830  // + member groups
1831  // + inheritance diagram
1832  // + list of direct super classes
1833  // + list of direct sub classes
1834  // + list of inner classes
1835  // + collaboration diagram
1836  // + list of all members
1837  // + user defined member sections
1838  // + standard member sections
1839  // + detailed member documentation
1840  // - examples using the class
1841 
1842  if (cd->isReference()) return; // skip external references.
1843  if (cd->isAnonymous()) return; // skip anonymous compounds.
1844  if (cd->templateMaster()!=0) return; // skip generated template instances.
1845 
1846  m_output.openHash()
1847  .addFieldQuotedString("name", cd->name());
1848  /* DGA: fix # #7547 Perlmod does not generate "kind" information to discriminate struct/union */
1850 
1851  if (!cd->baseClasses().empty())
1852  {
1853  m_output.openList("base");
1854  for (const auto &bcd : cd->baseClasses())
1855  {
1856  m_output.openHash()
1857  .addFieldQuotedString("name", bcd.classDef->displayName())
1858  .addFieldQuotedString("virtualness", getVirtualnessName(bcd.virt))
1859  .addFieldQuotedString("protection", getProtectionName(bcd.prot))
1860  .closeHash();
1861  }
1862  m_output.closeList();
1863  }
1864 
1865  if (!cd->subClasses().empty())
1866  {
1867  m_output.openList("derived");
1868  for (const auto &bcd : cd->subClasses())
1869  {
1870  m_output.openHash()
1871  .addFieldQuotedString("name", bcd.classDef->displayName())
1872  .addFieldQuotedString("virtualness", getVirtualnessName(bcd.virt))
1873  .addFieldQuotedString("protection", getProtectionName(bcd.prot))
1874  .closeHash();
1875  }
1876  m_output.closeList();
1877  }
1878 
1879  {
1880  m_output.openList("inner");
1881  for (const auto &icd : cd->getClasses())
1882  m_output.openHash()
1883  .addFieldQuotedString("name", icd->name())
1884  .closeHash();
1885  m_output.closeList();
1886  }
1887 
1888  addIncludeInfo(cd->includeInfo());
1889 
1891  addListOfAllMembers(cd);
1893 
1901  generatePerlModSection(cd,cd->getMemberList(MemberListType_pubStaticMethods),"public_static_methods");
1902  generatePerlModSection(cd,cd->getMemberList(MemberListType_pubStaticAttribs),"public_static_members");
1903  generatePerlModSection(cd,cd->getMemberList(MemberListType_proTypes),"protected_typedefs");
1904  generatePerlModSection(cd,cd->getMemberList(MemberListType_proMethods),"protected_methods");
1905  generatePerlModSection(cd,cd->getMemberList(MemberListType_proAttribs),"protected_members");
1907  generatePerlModSection(cd,cd->getMemberList(MemberListType_proStaticMethods),"protected_static_methods");
1908  generatePerlModSection(cd,cd->getMemberList(MemberListType_proStaticAttribs),"protected_static_members");
1909  generatePerlModSection(cd,cd->getMemberList(MemberListType_priTypes),"private_typedefs");
1913  generatePerlModSection(cd,cd->getMemberList(MemberListType_priStaticMethods),"private_static_methods");
1914  generatePerlModSection(cd,cd->getMemberList(MemberListType_priStaticAttribs),"private_static_members");
1916  generatePerlModSection(cd,cd->getMemberList(MemberListType_related),"related_methods");
1917 
1918  addPerlModDocBlock(m_output,"brief",cd->getDefFileName(),cd->getDefLine(),cd,0,cd->briefDescription());
1919  addPerlModDocBlock(m_output,"detailed",cd->getDefFileName(),cd->getDefLine(),cd,0,cd->documentation());
1920 
1921 #if 0
1922  DotClassGraph inheritanceGraph(cd,DotClassGraph::Inheritance);
1923  if (!inheritanceGraph.isTrivial())
1924  {
1925  t << " <inheritancegraph>" << endl;
1926  inheritanceGraph.writePerlMod(t);
1927  t << " </inheritancegraph>" << endl;
1928  }
1929  DotClassGraph collaborationGraph(cd,DotClassGraph::Implementation);
1930  if (!collaborationGraph.isTrivial())
1931  {
1932  t << " <collaborationgraph>" << endl;
1933  collaborationGraph.writePerlMod(t);
1934  t << " </collaborationgraph>" << endl;
1935  }
1936  t << " <location file=\""
1937  << cd->getDefFileName() << "\" line=\""
1938  << cd->getDefLine() << "\"";
1939  if (cd->getStartBodyLine()!=-1)
1940  {
1941  t << " bodystart=\"" << cd->getStartBodyLine() << "\" bodyend=\""
1942  << cd->getEndBodyLine() << "\"";
1943  }
1944  t << "/>" << endl;
1945 #endif
1946 
1947  m_output.closeHash();
1948 }

引用了 PerlModOutput::addFieldQuotedString(), addIncludeInfo(), addListOfAllMembers(), addPerlModDocBlock(), addTemplateList(), ClassDef::baseClasses(), Definition::briefDescription(), PerlModOutput::closeHash(), PerlModOutput::closeList(), ClassDef::compoundTypeString(), Definition::documentation(), generatePerlModSection(), generatePerlUserDefinedSection(), ClassDef::getClasses(), Definition::getDefFileName(), Definition::getDefLine(), Definition::getEndBodyLine(), ClassDef::getMemberGroups(), ClassDef::getMemberList(), getProtectionName(), Definition::getStartBodyLine(), getVirtualnessName(), ClassDef::includeInfo(), Inheritance, Definition::isAnonymous(), ClassDef::isReference(), DotClassGraph::isTrivial(), m_output, MemberListType_dcopMethods, MemberListType_friends, MemberListType_priAttribs, MemberListType_priMethods, MemberListType_priSlots, MemberListType_priStaticAttribs, MemberListType_priStaticMethods, MemberListType_priTypes, MemberListType_proAttribs, MemberListType_proMethods, MemberListType_properties, MemberListType_proSlots, MemberListType_proStaticAttribs, MemberListType_proStaticMethods, MemberListType_proTypes, MemberListType_pubAttribs, MemberListType_pubMethods, MemberListType_pubSlots, MemberListType_pubStaticAttribs, MemberListType_pubStaticMethods, MemberListType_pubTypes, MemberListType_related, MemberListType_signals, Definition::name(), PerlModOutput::openHash(), PerlModOutput::openList(), ClassDef::subClasses() , 以及 ClassDef::templateMaster().

被这些函数引用 generatePerlModOutput().

◆ generatePerlModForConcept()

void PerlModGenerator::generatePerlModForConcept ( const ConceptDef cd)

◆ generatePerlModForFile()

void PerlModGenerator::generatePerlModForFile ( const FileDef fd)

在文件 perlmodgen.cpp2017 行定义.

2018 {
2019  // + includes files
2020  // + includedby files
2021  // - include graph
2022  // - included by graph
2023  // - contained class definitions
2024  // - contained namespace definitions
2025  // - member groups
2026  // + normal members
2027  // + brief desc
2028  // + detailed desc
2029  // - source code
2030  // - location
2031  // - number of lines
2032 
2033  if (fd->isReference()) return;
2034 
2035  m_output.openHash()
2036  .addFieldQuotedString("name", fd->name());
2037 
2038  m_output.openList("includes");
2039  for (const auto &inc: fd->includeFileList())
2040  {
2041  m_output.openHash()
2042  .addFieldQuotedString("name", inc.includeName);
2043  if (inc.fileDef && !inc.fileDef->isReference())
2044  {
2045  m_output.addFieldQuotedString("ref", inc.fileDef->getOutputFileBase());
2046  }
2047  m_output.closeHash();
2048  }
2049  m_output.closeList();
2050 
2051  m_output.openList("included_by");
2052  for (const auto &inc : fd->includedByFileList())
2053  {
2054  m_output.openHash()
2055  .addFieldQuotedString("name", inc.includeName);
2056  if (inc.fileDef && !inc.fileDef->isReference())
2057  {
2058  m_output.addFieldQuotedString("ref", inc.fileDef->getOutputFileBase());
2059  }
2060  m_output.closeHash();
2061  }
2062  m_output.closeList();
2063 
2065 
2072 
2073  addPerlModDocBlock(m_output,"brief",fd->getDefFileName(),fd->getDefLine(),0,0,fd->briefDescription());
2074  addPerlModDocBlock(m_output,"detailed",fd->getDefFileName(),fd->getDefLine(),0,0,fd->documentation());
2075 
2076  m_output.closeHash();
2077 }

引用了 PerlModOutput::addFieldQuotedString(), addPerlModDocBlock(), Definition::briefDescription(), PerlModOutput::closeHash(), PerlModOutput::closeList(), Definition::documentation(), generatePerlModSection(), generatePerlUserDefinedSection(), Definition::getDefFileName(), Definition::getDefLine(), FileDef::getMemberGroups(), FileDef::getMemberList(), FileDef::includedByFileList(), FileDef::includeFileList(), Definition::isReference(), m_output, MemberListType_decDefineMembers, MemberListType_decEnumMembers, MemberListType_decFuncMembers, MemberListType_decProtoMembers, MemberListType_decTypedefMembers, MemberListType_decVarMembers, FileDef::name(), PerlModOutput::openHash() , 以及 PerlModOutput::openList().

被这些函数引用 generatePerlModOutput().

◆ generatePerlModForGroup()

void PerlModGenerator::generatePerlModForGroup ( const GroupDef gd)

在文件 perlmodgen.cpp2079 行定义.

2080 {
2081  // + members
2082  // + member groups
2083  // + files
2084  // + classes
2085  // + namespaces
2086  // - packages
2087  // + pages
2088  // + child groups
2089  // - examples
2090  // + brief description
2091  // + detailed description
2092 
2093  if (gd->isReference()) return; // skip external references
2094 
2095  m_output.openHash()
2096  .addFieldQuotedString("name", gd->name())
2097  .addFieldQuotedString("title", gd->groupTitle());
2098 
2099  if (!gd->getFiles().empty())
2100  {
2101  m_output.openList("files");
2102  for (const auto &fd : gd->getFiles())
2103  m_output.openHash()
2104  .addFieldQuotedString("name", fd->name())
2105  .closeHash();
2106  m_output.closeList();
2107  }
2108 
2109  if (!gd->getClasses().empty())
2110  {
2111  m_output.openList("classes");
2112  for (const auto &cd : gd->getClasses())
2113  m_output.openHash()
2114  .addFieldQuotedString("name", cd->name())
2115  .closeHash();
2116  m_output.closeList();
2117  }
2118 
2119  if (!gd->getNamespaces().empty())
2120  {
2121  m_output.openList("namespaces");
2122  for (const auto &nd : gd->getNamespaces())
2123  m_output.openHash()
2124  .addFieldQuotedString("name", nd->name())
2125  .closeHash();
2126  m_output.closeList();
2127  }
2128 
2129  if (!gd->getPages().empty())
2130  {
2131  m_output.openList("pages");
2132  for (const auto &pd : gd->getPages())
2133  m_output.openHash()
2134  .addFieldQuotedString("title", pd->title())
2135  .closeHash();
2136  m_output.closeList();
2137  }
2138 
2139  if (!gd->getSubGroups().empty())
2140  {
2141  m_output.openList("groups");
2142  for (const auto &sgd : gd->getSubGroups())
2143  m_output.openHash()
2144  .addFieldQuotedString("title", sgd->groupTitle())
2145  .closeHash();
2146  m_output.closeList();
2147  }
2148 
2150 
2157 
2158  addPerlModDocBlock(m_output,"brief",gd->getDefFileName(),gd->getDefLine(),0,0,gd->briefDescription());
2159  addPerlModDocBlock(m_output,"detailed",gd->getDefFileName(),gd->getDefLine(),0,0,gd->documentation());
2160 
2161  m_output.closeHash();
2162 }

引用了 PerlModOutput::addFieldQuotedString(), addPerlModDocBlock(), Definition::briefDescription(), PerlModOutput::closeHash(), PerlModOutput::closeList(), Definition::documentation(), LinkedRefMap< T, Hash, KeyEqual, Map >::empty(), generatePerlModSection(), generatePerlUserDefinedSection(), GroupDef::getClasses(), Definition::getDefFileName(), Definition::getDefLine(), GroupDef::getFiles(), GroupDef::getMemberGroups(), GroupDef::getMemberList(), GroupDef::getNamespaces(), GroupDef::getPages(), GroupDef::getSubGroups(), GroupDef::groupTitle(), Definition::isReference(), m_output, MemberListType_decDefineMembers, MemberListType_decEnumMembers, MemberListType_decFuncMembers, MemberListType_decProtoMembers, MemberListType_decTypedefMembers, MemberListType_decVarMembers, Definition::name(), PerlModOutput::openHash() , 以及 PerlModOutput::openList().

被这些函数引用 generatePerlModOutput().

◆ generatePerlModForMember()

void PerlModGenerator::generatePerlModForMember ( const MemberDef md,
const Definition  
)

在文件 perlmodgen.cpp1562 行定义.

1563 {
1564  // + declaration/definition arg lists
1565  // + reimplements
1566  // + reimplementedBy
1567  // + exceptions
1568  // + const/volatile specifiers
1569  // - examples
1570  // - source definition
1571  // - source references
1572  // - source referenced by
1573  // - body code
1574  // - template arguments
1575  // (templateArguments(), definitionTemplateParameterLists())
1576 
1577  QCString memType;
1578  QCString name;
1579  bool isFunc=FALSE;
1580  switch (md->memberType())
1581  {
1582  case MemberType_Define: memType="define"; break;
1583  case MemberType_EnumValue: memType="enumvalue"; break;
1584  case MemberType_Property: memType="property"; break;
1585  case MemberType_Variable: memType="variable"; break;
1586  case MemberType_Typedef: memType="typedef"; break;
1587  case MemberType_Enumeration: memType="enum"; break;
1588  case MemberType_Function: memType="function"; isFunc=TRUE; break;
1589  case MemberType_Signal: memType="signal"; isFunc=TRUE; break;
1590  case MemberType_Friend: memType="friend"; isFunc=TRUE; break;
1591  case MemberType_DCOP: memType="dcop"; isFunc=TRUE; break;
1592  case MemberType_Slot: memType="slot"; isFunc=TRUE; break;
1593  case MemberType_Event: memType="event"; break;
1594  case MemberType_Interface: memType="interface"; break;
1595  case MemberType_Service: memType="service"; break;
1596  case MemberType_Sequence: memType="sequence"; break;
1597  case MemberType_Dictionary: memType="dictionary"; break;
1598  }
1599 
1600  name = md->name();
1601  if (md->isAnonymous()) name = "__unnamed" + name.right(name.length() - 1)+"__";
1602 
1603  m_output.openHash()
1604  .addFieldQuotedString("kind", memType)
1605  .addFieldQuotedString("name", name)
1606  .addFieldQuotedString("virtualness", getVirtualnessName(md->virtualness()))
1607  .addFieldQuotedString("protection", getProtectionName(md->protection()))
1608  .addFieldBoolean("static", md->isStatic());
1609 
1611  addPerlModDocBlock(m_output,"detailed",md->getDefFileName(),md->getDefLine(),md->getOuterScope(),md,md->documentation());
1612  if (md->memberType()!=MemberType_Define &&
1614  m_output.addFieldQuotedString("type", md->typeString());
1615 
1616  const ArgumentList &al = md->argumentList();
1617  if (isFunc) //function
1618  {
1619  m_output.addFieldBoolean("const", al.constSpecifier())
1620  .addFieldBoolean("volatile", al.volatileSpecifier());
1621 
1622  m_output.openList("parameters");
1623  const ArgumentList &declAl = md->declArgumentList();
1624  if (!declAl.empty())
1625  {
1626  auto defIt = al.begin();
1627  for (const Argument &a : declAl)
1628  {
1629  const Argument *defArg = 0;
1630  if (defIt!=al.end())
1631  {
1632  defArg = &(*defIt);
1633  ++defIt;
1634  }
1635  m_output.openHash();
1636 
1637  if (!a.name.isEmpty())
1638  m_output.addFieldQuotedString("declaration_name", a.name);
1639 
1640  if (defArg && !defArg->name.isEmpty() && defArg->name!=a.name)
1641  m_output.addFieldQuotedString("definition_name", defArg->name);
1642 
1643  if (!a.type.isEmpty())
1644  m_output.addFieldQuotedString("type", a.type);
1645 
1646  if (!a.array.isEmpty())
1647  m_output.addFieldQuotedString("array", a.array);
1648 
1649  if (!a.defval.isEmpty())
1650  m_output.addFieldQuotedString("default_value", a.defval);
1651 
1652  if (!a.attrib.isEmpty())
1653  m_output.addFieldQuotedString("attributes", a.attrib);
1654 
1655  m_output.closeHash();
1656  }
1657  }
1658  m_output.closeList();
1659  }
1660  else if (md->memberType()==MemberType_Define &&
1661  md->argsString()!=0) // define
1662  {
1663  m_output.openList("parameters");
1664  for (const Argument &a : al)
1665  {
1666  m_output.openHash()
1667  .addFieldQuotedString("name", a.type)
1668  .closeHash();
1669  }
1670  m_output.closeList();
1671  }
1672  else if (md->argsString()!=0)
1673  {
1674  m_output.addFieldQuotedString("arguments", md->argsString());
1675  }
1676 
1677  if (!md->initializer().isEmpty())
1678  m_output.addFieldQuotedString("initializer", md->initializer());
1679 
1680  if (!md->excpString().isEmpty())
1681  m_output.addFieldQuotedString("exceptions", md->excpString());
1682 
1683  if (md->memberType()==MemberType_Enumeration) // enum
1684  {
1685  const MemberVector &enumFields = md->enumFieldList();
1686  if (!enumFields.empty())
1687  {
1688  m_output.openList("values");
1689  for (const auto &emd : enumFields)
1690  {
1691  m_output.openHash()
1692  .addFieldQuotedString("name", emd->name());
1693 
1694  if (!emd->initializer().isEmpty())
1695  m_output.addFieldQuotedString("initializer", emd->initializer());
1696 
1697  addPerlModDocBlock(m_output,"brief",emd->getDefFileName(),emd->getDefLine(),emd->getOuterScope(),emd,emd->briefDescription());
1698 
1699  addPerlModDocBlock(m_output,"detailed",emd->getDefFileName(),emd->getDefLine(),emd->getOuterScope(),emd,emd->documentation());
1700 
1701  m_output.closeHash();
1702  }
1703  m_output.closeList();
1704  }
1705  }
1706 
1707  if (md->memberType() == MemberType_Variable && !md->bitfieldString().isEmpty())
1708  {
1709  QCString bitfield = md->bitfieldString();
1710  if (bitfield.at(0) == ':') bitfield = bitfield.mid(1);
1711  m_output.addFieldQuotedString("bitfield", bitfield);
1712  }
1713 
1714  const MemberDef *rmd = md->reimplements();
1715  if (rmd)
1716  m_output.openHash("reimplements")
1717  .addFieldQuotedString("name", rmd->name())
1718  .closeHash();
1719 
1720  const MemberVector &rbml = md->reimplementedBy();
1721  if (!rbml.empty())
1722  {
1723  m_output.openList("reimplemented_by");
1724  for (const auto &rbmd : rbml)
1725  m_output.openHash()
1726  .addFieldQuotedString("name", rbmd->name())
1727  .closeHash();
1728  m_output.closeList();
1729  }
1730 
1731  m_output.closeHash();
1732 }

引用了 PerlModOutput::addFieldBoolean(), PerlModOutput::addFieldQuotedString(), addPerlModDocBlock(), MemberDef::argsString(), MemberDef::argumentList(), QCString::at(), ArgumentList::begin(), MemberDef::bitfieldString(), MemberDef::briefDescription(), PerlModOutput::closeHash(), PerlModOutput::closeList(), ArgumentList::constSpecifier(), MemberDef::declArgumentList(), MemberDef::documentation(), MemberVector::empty(), ArgumentList::empty(), ArgumentList::end(), MemberDef::enumFieldList(), MemberDef::excpString(), FALSE, Definition::getDefFileName(), Definition::getDefLine(), Definition::getOuterScope(), getProtectionName(), getVirtualnessName(), MemberDef::initializer(), Definition::isAnonymous(), QCString::isEmpty(), MemberDef::isStatic(), QCString::length(), m_output, MemberDef::memberType(), MemberType_DCOP, MemberType_Define, MemberType_Dictionary, MemberType_Enumeration, MemberType_EnumValue, MemberType_Event, MemberType_Friend, MemberType_Function, MemberType_Interface, MemberType_Property, MemberType_Sequence, MemberType_Service, MemberType_Signal, MemberType_Slot, MemberType_Typedef, MemberType_Variable, QCString::mid(), Argument::name, Definition::name(), PerlModOutput::openHash(), PerlModOutput::openList(), MemberDef::protection(), MemberDef::reimplementedBy(), MemberDef::reimplements(), QCString::right(), TRUE, MemberDef::typeString(), MemberDef::virtualness() , 以及 ArgumentList::volatileSpecifier().

被这些函数引用 generatePerlModSection() , 以及 generatePerlUserDefinedSection().

◆ generatePerlModForNamespace()

void PerlModGenerator::generatePerlModForNamespace ( const NamespaceDef nd)

在文件 perlmodgen.cpp1966 行定义.

1967 {
1968  // + contained class definitions
1969  // + contained namespace definitions
1970  // + member groups
1971  // + normal members
1972  // + brief desc
1973  // + detailed desc
1974  // + location
1975  // - files containing (parts of) the namespace definition
1976 
1977  if (nd->isReference()) return; // skip external references
1978 
1979  m_output.openHash()
1980  .addFieldQuotedString("name", nd->name());
1981 
1982  if (!nd->getClasses().empty())
1983  {
1984  m_output.openList("classes");
1985  for (const auto &cd : nd->getClasses())
1986  m_output.openHash()
1987  .addFieldQuotedString("name", cd->name())
1988  .closeHash();
1989  m_output.closeList();
1990  }
1991 
1992  if (!nd->getNamespaces().empty())
1993  {
1994  m_output.openList("namespaces");
1995  for (const auto &ind : nd->getNamespaces())
1996  m_output.openHash()
1997  .addFieldQuotedString("name", ind->name())
1998  .closeHash();
1999  m_output.closeList();
2000  }
2001 
2003 
2010 
2011  addPerlModDocBlock(m_output,"brief",nd->getDefFileName(),nd->getDefLine(),0,0,nd->briefDescription());
2012  addPerlModDocBlock(m_output,"detailed",nd->getDefFileName(),nd->getDefLine(),0,0,nd->documentation());
2013 
2014  m_output.closeHash();
2015 }

引用了 PerlModOutput::addFieldQuotedString(), addPerlModDocBlock(), Definition::briefDescription(), PerlModOutput::closeHash(), PerlModOutput::closeList(), Definition::documentation(), LinkedRefMap< T, Hash, KeyEqual, Map >::empty(), generatePerlModSection(), generatePerlUserDefinedSection(), NamespaceDef::getClasses(), Definition::getDefFileName(), Definition::getDefLine(), NamespaceDef::getMemberGroups(), NamespaceDef::getMemberList(), NamespaceDef::getNamespaces(), Definition::isReference(), m_output, MemberListType_decDefineMembers, MemberListType_decEnumMembers, MemberListType_decFuncMembers, MemberListType_decProtoMembers, MemberListType_decTypedefMembers, MemberListType_decVarMembers, Definition::name(), PerlModOutput::openHash() , 以及 PerlModOutput::openList().

被这些函数引用 generatePerlModOutput().

◆ generatePerlModForPage()

void PerlModGenerator::generatePerlModForPage ( PageDef pi)

在文件 perlmodgen.cpp2164 行定义.

2165 {
2166  // + name
2167  // + title
2168  // + documentation
2169 
2170  if (pd->isReference()) return;
2171 
2172  m_output.openHash()
2173  .addFieldQuotedString("name", pd->name());
2174 
2175  const SectionInfo *si = SectionManager::instance().find(pd->name());
2176  if (si)
2177  m_output.addFieldQuotedString("title4", filterTitle(si->title().str()));
2178 
2179  addPerlModDocBlock(m_output,"detailed",pd->docFile(),pd->docLine(),0,0,pd->documentation());
2180  m_output.closeHash();
2181 }

引用了 PerlModOutput::addFieldQuotedString(), addPerlModDocBlock(), PerlModOutput::closeHash(), Definition::docFile(), Definition::docLine(), Definition::documentation(), filterTitle(), LinkedMap< T, Hash, KeyEqual, Map >::find(), SectionManager::instance(), Definition::isReference(), m_output, Definition::name(), PerlModOutput::openHash(), QCString::str() , 以及 SectionInfo::title().

被这些函数引用 generatePerlModOutput().

◆ generatePerlModOutput()

bool PerlModGenerator::generatePerlModOutput ( )

在文件 perlmodgen.cpp2183 行定义.

2184 {
2185  std::ofstream outputFileStream;
2186  if (!createOutputFile(outputFileStream, pathDoxyDocsPM))
2187  return false;
2188 
2189  PerlModOutputStream outputStream(outputFileStream);
2190  m_output.setPerlModOutputStream(&outputStream);
2191  m_output.add("$doxydocs=").openHash();
2192 
2193  m_output.openList("classes");
2194  for (const auto &cd : *Doxygen::classLinkedMap)
2195  generatePerlModForClass(cd.get());
2196  m_output.closeList();
2197 
2198  m_output.openList("concepts");
2199  for (const auto &cd : *Doxygen::conceptLinkedMap)
2200  generatePerlModForConcept(cd.get());
2201  m_output.closeList();
2202 
2203  m_output.openList("namespaces");
2204  for (const auto &nd : *Doxygen::namespaceLinkedMap)
2205  generatePerlModForNamespace(nd.get());
2206  m_output.closeList();
2207 
2208  m_output.openList("files");
2209  for (const auto &fn : *Doxygen::inputNameLinkedMap)
2210  {
2211  for (const auto &fd : *fn)
2212  {
2213  generatePerlModForFile(fd.get());
2214  }
2215  }
2216  m_output.closeList();
2217 
2218  m_output.openList("groups");
2219  for (const auto &gd : *Doxygen::groupLinkedMap)
2220  {
2221  generatePerlModForGroup(gd.get());
2222  }
2223  m_output.closeList();
2224 
2225  m_output.openList("pages");
2226  for (const auto &pd : *Doxygen::pageLinkedMap)
2227  {
2228  generatePerlModForPage(pd.get());
2229  }
2230  if (Doxygen::mainPage)
2231  {
2233  }
2234  m_output.closeList();
2235 
2236  m_output.closeHash().add(";\n1;\n");
2237  return true;
2238 }

引用了 PerlModOutput::add(), Doxygen::classLinkedMap, PerlModOutput::closeHash(), PerlModOutput::closeList(), Doxygen::conceptLinkedMap, createOutputFile(), generatePerlModForClass(), generatePerlModForConcept(), generatePerlModForFile(), generatePerlModForGroup(), generatePerlModForNamespace(), generatePerlModForPage(), Doxygen::groupLinkedMap, Doxygen::inputNameLinkedMap, m_output, Doxygen::mainPage, Doxygen::namespaceLinkedMap, PerlModOutput::openHash(), PerlModOutput::openList(), Doxygen::pageLinkedMap, pathDoxyDocsPM , 以及 PerlModOutput::setPerlModOutputStream().

被这些函数引用 generate().

◆ generatePerlModSection()

void PerlModGenerator::generatePerlModSection ( const Definition d,
MemberList ml,
const QCString name,
const QCString header = QCString() 
)

在文件 perlmodgen.cpp1734 行定义.

1736 {
1737  if (ml==0) return; // empty list
1738 
1739  m_output.openHash(name);
1740 
1741  if (!header.isEmpty())
1742  m_output.addFieldQuotedString("header", header);
1743 
1744  m_output.openList("members");
1745  for (const auto &md : *ml)
1746  {
1748  }
1750  .closeHash();
1751 }

引用了 PerlModOutput::addFieldQuotedString(), PerlModOutput::closeHash(), PerlModOutput::closeList(), generatePerlModForMember(), QCString::isEmpty(), m_output, PerlModOutput::openHash() , 以及 PerlModOutput::openList().

被这些函数引用 generatePerlModForClass(), generatePerlModForFile(), generatePerlModForGroup() , 以及 generatePerlModForNamespace().

◆ generatePerlUserDefinedSection()

void PerlModGenerator::generatePerlUserDefinedSection ( const Definition d,
const MemberGroupList mgl 
)

在文件 perlmodgen.cpp1780 行定义.

1781 {
1782  if (!mgl.empty())
1783  {
1784  m_output.openList("user_defined");
1785  for (const auto &mg : mgl)
1786  {
1787  m_output.openHash();
1788  if (!mg->header().isEmpty())
1789  {
1790  m_output.addFieldQuotedString("header", mg->header());
1791  }
1792 
1793  if (!mg->members().empty())
1794  {
1795  m_output.openList("members");
1796  for (const auto &md : mg->members())
1797  {
1798  generatePerlModForMember(md, d);
1799  }
1800  m_output.closeList();
1801  }
1802  m_output.closeHash();
1803  }
1804  m_output.closeList();
1805  }
1806 }

引用了 PerlModOutput::addFieldQuotedString(), PerlModOutput::closeHash(), PerlModOutput::closeList(), generatePerlModForMember(), m_output, PerlModOutput::openHash() , 以及 PerlModOutput::openList().

被这些函数引用 generatePerlModForClass(), generatePerlModForFile(), generatePerlModForGroup() , 以及 generatePerlModForNamespace().

类成员变量说明

◆ m_output

◆ pathDoxyDocsPM

QCString PerlModGenerator::pathDoxyDocsPM

在文件 perlmodgen.cpp1527 行定义.

被这些函数引用 generate(), generateDoxyRules() , 以及 generatePerlModOutput().

◆ pathDoxyDocsTex

QCString PerlModGenerator::pathDoxyDocsTex

在文件 perlmodgen.cpp1521 行定义.

被这些函数引用 generate(), generateDoxyLatexTex() , 以及 generateDoxyRules().

◆ pathDoxyFormatTex

QCString PerlModGenerator::pathDoxyFormatTex

在文件 perlmodgen.cpp1522 行定义.

被这些函数引用 generate(), generateDoxyFormatTex() , 以及 generateDoxyRules().

◆ pathDoxyLatexDVI

QCString PerlModGenerator::pathDoxyLatexDVI

在文件 perlmodgen.cpp1524 行定义.

被这些函数引用 generate() , 以及 generateDoxyRules().

◆ pathDoxyLatexPDF

QCString PerlModGenerator::pathDoxyLatexPDF

在文件 perlmodgen.cpp1525 行定义.

被这些函数引用 generate() , 以及 generateDoxyRules().

◆ pathDoxyLatexPL

QCString PerlModGenerator::pathDoxyLatexPL

在文件 perlmodgen.cpp1528 行定义.

被这些函数引用 generate(), generateDoxyLatexPL() , 以及 generateDoxyRules().

◆ pathDoxyLatexStructurePL

QCString PerlModGenerator::pathDoxyLatexStructurePL

在文件 perlmodgen.cpp1529 行定义.

被这些函数引用 generate(), generateDoxyLatexStructurePL() , 以及 generateDoxyRules().

◆ pathDoxyLatexTex

QCString PerlModGenerator::pathDoxyLatexTex

在文件 perlmodgen.cpp1523 行定义.

被这些函数引用 generate(), generateDoxyLatexTex() , 以及 generateDoxyRules().

◆ pathDoxyRules

QCString PerlModGenerator::pathDoxyRules

在文件 perlmodgen.cpp1530 行定义.

被这些函数引用 generate(), generateDoxyRules() , 以及 generateMakefile().

◆ pathDoxyStructurePM

QCString PerlModGenerator::pathDoxyStructurePM

在文件 perlmodgen.cpp1520 行定义.

被这些函数引用 generate(), generateDoxyRules() , 以及 generateDoxyStructurePM().

◆ pathDoxyStructureTex

QCString PerlModGenerator::pathDoxyStructureTex

在文件 perlmodgen.cpp1526 行定义.

被这些函数引用 generate(), generateDoxyFormatTex() , 以及 generateDoxyRules().

◆ pathMakefile

QCString PerlModGenerator::pathMakefile

在文件 perlmodgen.cpp1531 行定义.

被这些函数引用 generate() , 以及 generateMakefile().


该类的文档由以下文件生成:
PerlModGenerator::pathDoxyRules
QCString pathDoxyRules
Definition: perlmodgen.cpp:1530
PerlModGenerator::generateDoxyLatexTex
bool generateDoxyLatexTex()
Definition: perlmodgen.cpp:2885
PerlModOutput::add
PerlModOutput & add(char c)
Definition: perlmodgen.cpp:128
PerlModGenerator::addListOfAllMembers
void addListOfAllMembers(const ClassDef *cd)
Definition: perlmodgen.cpp:1753
PerlModGenerator::pathDoxyDocsTex
QCString pathDoxyDocsTex
Definition: perlmodgen.cpp:1521
PerlModGenerator::generatePerlModForNamespace
void generatePerlModForNamespace(const NamespaceDef *nd)
Definition: perlmodgen.cpp:1966
LinkedRefMap::empty
bool empty() const
Definition: linkedmap.h:374
PerlModGenerator::generateDoxyRules
bool generateDoxyRules()
Definition: perlmodgen.cpp:2446
PerlModGenerator::addIncludeInfo
void addIncludeInfo(const IncludeInfo *ii)
Definition: perlmodgen.cpp:1808
MemberType_Variable
@ MemberType_Variable
Definition: types.h:278
MemberListType_priStaticMethods
@ MemberListType_priStaticMethods
Definition: types.h:114
IncludeInfo::fileDef
const FileDef * fileDef
Definition: filedef.h:53
MemberListType_priStaticAttribs
@ MemberListType_priStaticAttribs
Definition: types.h:125
MemberListType_signals
@ MemberListType_signals
Definition: types.h:131
Doxygen::mainPage
static std::unique_ptr< PageDef > mainPage
Definition: doxygen.h:83
MemberDef::argsString
virtual QCString argsString() const =0
PerlModGenerator::pathDoxyLatexTex
QCString pathDoxyLatexTex
Definition: perlmodgen.cpp:1523
MemberDef::briefDescription
virtual QCString briefDescription(bool abbr=FALSE) const =0
PerlModGenerator::generatePerlModForMember
void generatePerlModForMember(const MemberDef *md, const Definition *)
Definition: perlmodgen.cpp:1562
Definition
The common base class of all entity definitions found in the sources.
Definition: definition.h:76
MemberDef::documentation
virtual QCString documentation() const =0
MemberDef::isStatic
virtual bool isStatic() const =0
MemberType_EnumValue
@ MemberType_EnumValue
Definition: types.h:281
Dir
Class representing a directory in the file system
Definition: dir.h:68
GroupDef::getClasses
virtual const ClassLinkedRefMap & getClasses() const =0
PerlModOutput::addFieldQuotedString
PerlModOutput & addFieldQuotedString(const QCString &field, const QCString &content)
Definition: perlmodgen.cpp:153
MemberType_Signal
@ MemberType_Signal
Definition: types.h:282
PerlModGenerator::m_output
PerlModOutput m_output
Definition: perlmodgen.cpp:1518
PerlModOutput::closeList
PerlModOutput & closeList()
Definition: perlmodgen.cpp:162
PerlModGenerator::generateDoxyFormatTex
bool generateDoxyFormatTex()
Definition: perlmodgen.cpp:2723
QCString::length
uint length() const
Returns the length of the string, not counting the 0-terminator.
Definition: qcstring.h:147
PerlModGenerator::createOutputDir
bool createOutputDir(Dir &perlModDir)
Definition: perlmodgen.cpp:2251
ArgumentList
This class represents an function or template argument list.
Definition: arguments.h:59
Doxygen::conceptLinkedMap
static ConceptLinkedMap * conceptLinkedMap
Definition: doxygen.h:80
ClassDef::compoundTypeString
virtual QCString compoundTypeString() const =0
Returns the type of compound as a string
MemberType_Interface
@ MemberType_Interface
Definition: types.h:288
Definition::getDefLine
virtual int getDefLine() const =0
filterTitle
QCString filterTitle(const QCString &title)
Definition: util.cpp:6254
MemberListType_priAttribs
@ MemberListType_priAttribs
Definition: types.h:121
PerlModGenerator::pathDoxyFormatTex
QCString pathDoxyFormatTex
Definition: perlmodgen.cpp:1522
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
Doxygen::pageLinkedMap
static PageLinkedMap * pageLinkedMap
Definition: doxygen.h:82
GroupDef::groupTitle
virtual QCString groupTitle() const =0
PerlModGenerator::generateMakefile
bool generateMakefile()
Definition: perlmodgen.cpp:2542
ConceptDef::includeInfo
virtual const IncludeInfo * includeInfo() const =0
MemberListType_pubTypes
@ MemberListType_pubTypes
Definition: types.h:126
MemberDef::bitfieldString
virtual QCString bitfieldString() const =0
GroupDef::getFiles
virtual const FileList & getFiles() const =0
GroupDef::getMemberList
virtual MemberList * getMemberList(MemberListType lt) const =0
MemberType_Friend
@ MemberType_Friend
Definition: types.h:284
MemberListType_priSlots
@ MemberListType_priSlots
Definition: types.h:117
MemberType_Enumeration
@ MemberType_Enumeration
Definition: types.h:280
MemberListType_dcopMethods
@ MemberListType_dcopMethods
Definition: types.h:133
QCString::str
std::string str() const
Definition: qcstring.h:442
PerlModGenerator::generatePerlModForFile
void generatePerlModForFile(const FileDef *fd)
Definition: perlmodgen.cpp:2017
MemberType_Typedef
@ MemberType_Typedef
Definition: types.h:279
PerlModGenerator::generatePerlModForPage
void generatePerlModForPage(PageDef *pi)
Definition: perlmodgen.cpp:2164
PerlModOutput::openHash
PerlModOutput & openHash(const QCString &s=QCString())
Definition: perlmodgen.cpp:163
PerlModGenerator::pathDoxyLatexPL
QCString pathDoxyLatexPL
Definition: perlmodgen.cpp:1528
FileDef::includedByFileList
virtual const IncludeInfoList & includedByFileList() const =0
err
void err(const char *fmt,...)
Definition: message.cpp:203
MemberListType_friends
@ MemberListType_friends
Definition: types.h:132
GroupDef::getSubGroups
virtual const GroupList & getSubGroups() const =0
QCString::at
char & at(size_t i)
Returns a reference to the character at index i.
Definition: qcstring.h:477
MemberListType_proAttribs
@ MemberListType_proAttribs
Definition: types.h:119
ClassDef::includeInfo
virtual const IncludeInfo * includeInfo() const =0
MemberListType_pubMethods
@ MemberListType_pubMethods
Definition: types.h:107
NamespaceDef::getMemberGroups
virtual const MemberGroupList & getMemberGroups() const =0
PerlModGenerator::pathDoxyLatexStructurePL
QCString pathDoxyLatexStructurePL
Definition: perlmodgen.cpp:1529
ArgumentList::volatileSpecifier
bool volatileSpecifier() const
Definition: arguments.h:105
ArgumentList::end
iterator end()
Definition: arguments.h:87
FileDef::docName
virtual const QCString & docName() const =0
PerlModOutput::addFieldBoolean
PerlModOutput & addFieldBoolean(const QCString &field, bool content)
Definition: perlmodgen.cpp:157
ArgumentList::begin
iterator begin()
Definition: arguments.h:86
PerlModGenerator::createOutputFile
bool createOutputFile(std::ofstream &f, const QCString &s)
Definition: perlmodgen.cpp:2240
PerlModGenerator::pathDoxyStructurePM
QCString pathDoxyStructurePM
Definition: perlmodgen.cpp:1520
ClassDef::templateMaster
virtual const ClassDef * templateMaster() const =0
Returns the template master of which this class is an instance.
PerlModOutput::closeHash
PerlModOutput & closeHash()
Definition: perlmodgen.cpp:164
Doxygen::inputNameLinkedMap
static FileNameLinkedMap * inputNameLinkedMap
Definition: doxygen.h:88
MemberType_Service
@ MemberType_Service
Definition: types.h:289
MemberType_Function
@ MemberType_Function
Definition: types.h:277
MemberDef
A model of a class/file/namespace member symbol.
Definition: memberdef.h:45
MemberListType_decProtoMembers
@ MemberListType_decProtoMembers
Definition: types.h:150
MemberListType_pubSlots
@ MemberListType_pubSlots
Definition: types.h:115
ClassDef
A abstract class representing of a compound symbol.
Definition: classdef.h:103
MemberListType_decVarMembers
@ MemberListType_decVarMembers
Definition: types.h:154
MemberType_Slot
@ MemberType_Slot
Definition: types.h:283
MemberListType_proStaticMethods
@ MemberListType_proStaticMethods
Definition: types.h:112
MemberVector::empty
bool empty() const
Definition: memberlist.h:47
PerlModOutputStream
Definition: perlmodgen.cpp:49
ConceptDef::initializer
virtual QCString initializer() const =0
MemberDef::excpString
virtual QCString excpString() const =0
FileDef::name
virtual QCString name() const =0
ClassDef::memberNameInfoLinkedMap
virtual const MemberNameInfoLinkedMap & memberNameInfoLinkedMap() const =0
Returns a dictionary of all members.
MemberDef::virtualness
virtual Specifier virtualness(int count=0) const =0
MemberDef::enumFieldList
virtual const MemberVector & enumFieldList() const =0
Definition::isAnonymous
virtual bool isAnonymous() const =0
ArgumentList::empty
bool empty() const
Definition: arguments.h:92
ClassDef::baseClasses
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
FileDef::getMemberList
virtual MemberList * getMemberList(MemberListType lt) const =0
GroupDef::getMemberGroups
virtual const MemberGroupList & getMemberGroups() const =0
PerlModGenerator::generateDoxyLatexStructurePL
bool generateDoxyLatexStructurePL()
Definition: perlmodgen.cpp:2568
NamespaceDef::getClasses
virtual ClassLinkedRefMap getClasses() const =0
PerlModGenerator::generatePerlModForClass
void generatePerlModForClass(const ClassDef *cd)
Definition: perlmodgen.cpp:1824
PerlModGenerator::pathDoxyLatexDVI
QCString pathDoxyLatexDVI
Definition: perlmodgen.cpp:1524
Dir::absPath
std::string absPath() const
Definition: dir.cpp:305
Definition::isReference
virtual bool isReference() const =0
Definition::name
virtual QCString name() const =0
Doxygen::groupLinkedMap
static GroupLinkedMap * groupLinkedMap
Definition: doxygen.h:96
ClassDef::getClasses
virtual ClassLinkedRefMap getClasses() const =0
returns the classes nested into this class
MemberType_DCOP
@ MemberType_DCOP
Definition: types.h:285
Argument
This class contains the information about the argument of a function or template
Definition: arguments.h:26
MemberDef::getClassDef
virtual const ClassDef * getClassDef() const =0
pathDoxyfile
static QCString pathDoxyfile
Definition: perlmodgen.cpp:1505
PerlModGenerator::generatePerlModForConcept
void generatePerlModForConcept(const ConceptDef *cd)
Definition: perlmodgen.cpp:1950
NamespaceDef::getMemberList
virtual MemberList * getMemberList(MemberListType lt) const =0
PerlModGenerator::generatePerlModSection
void generatePerlModSection(const Definition *d, MemberList *ml, const QCString &name, const QCString &header=QCString())
Definition: perlmodgen.cpp:1734
Definition::briefDescription
virtual QCString briefDescription(bool abbreviate=FALSE) const =0
TRUE
#define TRUE
Definition: qcstring.h:36
GroupDef::getNamespaces
virtual const NamespaceLinkedRefMap & getNamespaces() const =0
Definition::getStartBodyLine
virtual int getStartBodyLine() const =0
MemberVector
A vector of MemberDef object
Definition: memberlist.h:32
Definition::getEndBodyLine
virtual int getEndBodyLine() const =0
PerlModOutput::setPerlModOutputStream
void setPerlModOutputStream(PerlModOutputStream *os)
Definition: perlmodgen.cpp:113
ArgumentList::constSpecifier
bool constSpecifier() const
Definition: arguments.h:104
MemberDef::reimplements
virtual const MemberDef * reimplements() const =0
MemberDef::protection
virtual Protection protection() const =0
LinkedMap::find
const T * find(const std::string &key) const
Find an object given the key.
Definition: linkedmap.h:60
PerlModGenerator::pathDoxyStructureTex
QCString pathDoxyStructureTex
Definition: perlmodgen.cpp:1526
NamespaceDef::getNamespaces
virtual NamespaceLinkedRefMap getNamespaces() const =0
MemberListType_decEnumMembers
@ MemberListType_decEnumMembers
Definition: types.h:152
SectionInfo::title
QCString title() const
Definition: section.h:66
PerlModOutput::openList
PerlModOutput & openList(const QCString &s=QCString())
Definition: perlmodgen.cpp:161
MemberListType_priTypes
@ MemberListType_priTypes
Definition: types.h:129
DotClassGraph
Representation of a class inheritance or dependency graph
Definition: dotclassgraph.h:28
PerlModGenerator::generatePerlModOutput
bool generatePerlModOutput()
Definition: perlmodgen.cpp:2183
MemberListType_pubStaticAttribs
@ MemberListType_pubStaticAttribs
Definition: types.h:122
ClassDef::subClasses
virtual const BaseClassList & subClasses() const =0
Returns the list of sub classes that directly derive from this class
MemberType_Property
@ MemberType_Property
Definition: types.h:286
MemberListType_decDefineMembers
@ MemberListType_decDefineMembers
Definition: types.h:149
MemberType_Dictionary
@ MemberType_Dictionary
Definition: types.h:291
MemberListType_proMethods
@ MemberListType_proMethods
Definition: types.h:108
GroupDef::getPages
virtual const PageLinkedRefMap & getPages() const =0
PerlModGenerator::pathMakefile
QCString pathMakefile
Definition: perlmodgen.cpp:1531
MemberListType_decFuncMembers
@ MemberListType_decFuncMembers
Definition: types.h:153
MemberListType_proTypes
@ MemberListType_proTypes
Definition: types.h:127
MemberDef::reimplementedBy
virtual const MemberVector & reimplementedBy() const =0
PerlModGenerator::generatePerlUserDefinedSection
void generatePerlUserDefinedSection(const Definition *d, const MemberGroupList &mgl)
Definition: perlmodgen.cpp:1780
addTemplateList
static void addTemplateList(const ClassDef *cd, PerlModOutput &output)
Definition: perlmodgen.cpp:1448
QCString::mid
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
Definition: qcstring.h:224
MemberListType_proStaticAttribs
@ MemberListType_proStaticAttribs
Definition: types.h:123
Config_getBool
#define Config_getBool(name)
Definition: config.h:33
PerlModGenerator::generatePerlModForGroup
void generatePerlModForGroup(const GroupDef *gd)
Definition: perlmodgen.cpp:2079
MemberListType_related
@ MemberListType_related
Definition: types.h:130
PerlModGenerator::pathDoxyDocsPM
QCString pathDoxyDocsPM
Definition: perlmodgen.cpp:1527
getProtectionName
static const char * getProtectionName(Protection prot)
Definition: perlmodgen.cpp:1482
SectionManager::instance
static SectionManager & instance()
returns a reference to the singleton
Definition: section.h:172
MemberListType_priMethods
@ MemberListType_priMethods
Definition: types.h:110
Definition::documentation
virtual QCString documentation() const =0
MemberDef::declArgumentList
virtual const ArgumentList & declArgumentList() const =0
addPerlModDocBlock
static void addPerlModDocBlock(PerlModOutput &output, const QCString &name, const QCString &fileName, int lineNr, const Definition *scope, const MemberDef *md, const QCString &text)
Definition: perlmodgen.cpp:1458
ClassDef::isReference
virtual bool isReference() const =0
Returns TRUE if this class is imported via a tag file
MemberType_Event
@ MemberType_Event
Definition: types.h:287
Definition::getOuterScope
virtual Definition * getOuterScope() const =0
MemberListType_proSlots
@ MemberListType_proSlots
Definition: types.h:116
MemberListType_decTypedefMembers
@ MemberListType_decTypedefMembers
Definition: types.h:151
MemberType_Sequence
@ MemberType_Sequence
Definition: types.h:290
qPrint
const char * qPrint(const char *s)
Definition: qcstring.h:589
PerlModGenerator::generateDoxyLatexPL
bool generateDoxyLatexPL()
Definition: perlmodgen.cpp:2601
Config_getString
#define Config_getString(name)
Definition: config.h:32
Dir::setPath
void setPath(const std::string &path)
Definition: dir.cpp:171
Definition::getDefFileName
virtual QCString getDefFileName() const =0
SectionInfo
class that provide information about a section.
Definition: section.h:49
Inheritance
@ Inheritance
Definition: dotgraph.h:29
Argument::name
QCString name
Definition: arguments.h:52
MemberDef::argumentList
virtual const ArgumentList & argumentList() const =0
MemberListType_pubAttribs
@ MemberListType_pubAttribs
Definition: types.h:118
Doxygen::namespaceLinkedMap
static NamespaceLinkedMap * namespaceLinkedMap
Definition: doxygen.h:97
ClassDef::getMemberList
virtual MemberList * getMemberList(MemberListType lt) const =0
Returns the members in the list identified by lt
FileDef::getMemberGroups
virtual const MemberGroupList & getMemberGroups() const =0
Dir::exists
bool exists() const
Definition: dir.cpp:199
MemberType_Define
@ MemberType_Define
Definition: types.h:276
IncludeInfo::includeName
QCString includeName
Definition: filedef.h:54
ClassDef::getMemberGroups
virtual const MemberGroupList & getMemberGroups() const =0
Returns the member groups defined for this class
MemberListType_properties
@ MemberListType_properties
Definition: types.h:134
PerlModGenerator::pathDoxyLatexPDF
QCString pathDoxyLatexPDF
Definition: perlmodgen.cpp:1525
Doxygen::classLinkedMap
static ClassLinkedMap * classLinkedMap
Definition: doxygen.h:78
MemberDef::initializer
virtual const QCString & initializer() const =0
Dir::mkdir
bool mkdir(const std::string &path, bool acceptsAbsPath=true) const
Definition: dir.cpp:237
MemberDef::typeString
virtual QCString typeString() const =0
MemberListType_pubStaticMethods
@ MemberListType_pubStaticMethods
Definition: types.h:111
QCString::right
QCString right(size_t len) const
Definition: qcstring.h:217
getVirtualnessName
static const char * getVirtualnessName(Specifier virt)
Definition: perlmodgen.cpp:1494
MemberDef::memberType
virtual MemberType memberType() const =0
MemberDef::getGroupDef
virtual const GroupDef * getGroupDef() const =0
pathDoxyExec
static QCString pathDoxyExec
Definition: perlmodgen.cpp:1506
PerlModGenerator::generateDoxyStructurePM
bool generateDoxyStructurePM()
Definition: perlmodgen.cpp:2263
FALSE
#define FALSE
Definition: qcstring.h:33
FileDef::includeFileList
virtual const IncludeInfoList & includeFileList() const =0
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108