33 const fileName& fName,
34 const string& startTag,
35 const string& searchStr,
36 const bool exactMatch,
40 dictionary(dictionary::null)
50 skipForward(is, startTag);
57 string blockName =
"";
59 bool readingParam =
false;
60 while (is.get(
c) &&
c !=
'>')
74 blockName = blockName +
c;
79 if (blockName ==
'/' + startTag)
84 if ((blockName ==
"compound") && (params ==
"kind=\"file\""))
90 bool foundName =
false;
91 bool foundPath =
false;
92 bool foundFName =
false;
93 bool earlyExit =
false;
94 while (!foundName || !foundPath || !foundFName)
97 getEntry<word>(is, entryName);
98 if (entryName ==
"name")
100 getValue<word>(is,
name);
102 if (nameRegEx.match(
name))
112 else if (entryName ==
"path")
114 getValue<fileName>(is,
path);
117 if (searchRegEx.match(
path))
127 else if (entryName ==
"filename")
129 getValue<word>(is, fName);
134 skipBlock(is, entryName);
138 if (foundPath && !earlyExit)
146 if (exactMatch && (tName +
"." + ext) ==
name)
150 dict.
add(
"filename", fName +
".html");
163 dict.
add(
"filename", fName +
".html");
170 skipBlock(is, blockName);
174 skipBlock(is, blockName);
186 const word& blockName
190 string closeName =
"";
193 while (is.good() && (closeName != blockName))
196 while (is.get(
c) &&
c !=
'<')
200 if (is.get(
c) &&
c ==
'/')
204 while (is.get(
c) &&
c !=
'>')
216 const word& blockName
220 string entryName =
"";
223 while (is.good() && (entryName != blockName))
228 while (is.get(
c) &&
c !=
'<')
231 while (is.get(
c) &&
c !=
'>')
233 entryName = entryName +
c;