33 const fileName& fName,
34 const string& startTag,
35 const string& searchStr,
39 dictionary(dictionary::null)
46 const string slashStartTag(
'/' + startTag);
47 const string kindFileStr(
"kind=\"file\"");
48 const word compoundWord(
"compound");
49 const word nameWord(
"name");
50 const word pathWord(
"path");
51 const word filenameWord(
"filename");
56 skipForward(is, startTag);
67 bool readingParam =
false;
68 while (is.get(c) && c !=
'>')
82 blockName = blockName +
c;
87 if (blockName == slashStartTag)
92 if ((blockName == compoundWord) && (params == kindFileStr))
98 bool foundName =
false;
99 bool foundPath =
false;
100 bool foundFName =
false;
101 bool earlyExit =
false;
102 while (!foundName || !foundPath || !foundFName)
105 getEntry<word>(is, entryName);
106 if (entryName == nameWord)
108 getValue<word>(is,
name);
109 if (nameRe.match(name))
119 else if (entryName == pathWord)
121 getValue<fileName>(is,
path);
124 if (searchStrRe.match(path))
134 else if (entryName == filenameWord)
136 getValue<word>(is, fName);
141 skipBlock(is, entryName);
145 if (foundPath && !earlyExit)
147 word tName(path.components().last());
153 if (exactMatch && (tName +
".H") ==
name)
157 dict.
add(
"filename", fName +
".html");
170 dict.
add(
"filename", fName +
".html");
177 skipBlock(is, blockName);
181 skipBlock(is, blockName);
193 const word& blockName
200 while (is.good() && (closeName != blockName))
203 while (is.get(c) && c !=
'<')
207 if (is.get(c) && c ==
'/')
211 while (is.get(c) && c !=
'>')
223 const word& blockName
227 string entryName =
"";
230 while (is.good() && (entryName != blockName))
235 while (is.get(c) && c !=
'<')
238 while (is.get(c) && c !=
'>')
240 entryName = entryName +
c;
doxygenXmlParser(const fileName &fName, const string &startTag, const string &searchStr, const bool exactMatch)
Construct from components.
static const dictionary null
Null dictionary.
void skipForward(IFstream &is, const word &blockName) const
Skip forward to block.
bool add(entry *, bool mergeEntry=false)
Add a new entry.
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
fileName path(UMean.rootPath()/UMean.caseName()/"graphs"/UMean.instance())
word name(const complex &)
Return a string representation of a complex.
const dimensionedScalar c
Speed of light in a vacuum.
void skipBlock(IFstream &is, const word &blockName) const
Skip past a block.
treat as regular expression