35 const fileName& fName,
36 const string& startTag,
37 const string& searchStr,
38 const bool exactMatch,
42 dictionary(dictionary::null)
45 const regExp nameRe(
".*.H");
46 const regExp searchStrRe(searchStr);
49 const string slashStartTag(
'/' + startTag);
50 const string kindFileStr(
"kind=\"file\"");
51 const word compoundWord(
"compound");
52 const word nameWord(
"name");
53 const word pathWord(
"path");
54 const word filenameWord(
"filename");
59 skipForward(is, startTag);
70 bool readingParam =
false;
71 while (is.get(
c) &&
c !=
'>')
85 blockName = blockName +
c;
90 if (blockName == slashStartTag)
95 if ((blockName == compoundWord) && (params == kindFileStr))
101 bool foundName =
false;
102 bool foundPath =
false;
103 bool foundFName =
false;
104 bool earlyExit =
false;
105 while (!foundName || !foundPath || !foundFName)
108 getEntry<word>(is, entryName);
109 if (entryName == nameWord)
111 getValue<word>(is,
name);
112 if (nameRe.match(
name))
122 else if (entryName == pathWord)
124 getValue<fileName>(is,
path);
127 if (searchStrRe.match(
path))
137 else if (entryName == filenameWord)
139 getValue<word>(is, fName);
144 skipBlock(is, entryName);
148 if (foundPath && !earlyExit)
150 word tName(
path.components().last());
156 if (exactMatch && (tName +
"." + ext) ==
name)
158 dictionary
dict(dictionary::null);
160 dict.add(
"filename", fName +
".html");
171 dictionary
dict(dictionary::null);
173 dict.add(
"filename", fName +
".html");
180 skipBlock(is, blockName);
184 skipBlock(is, blockName);
196 const word& blockName
203 while (is.good() && (closeName != blockName))
206 while (is.get(
c) &&
c !=
'<')
210 if (is.get(
c) &&
c ==
'/')
214 while (is.get(
c) &&
c !=
'>')
226 const word& blockName
230 string entryName =
"";
233 while (is.good() && (entryName != blockName))
238 while (is.get(
c) &&
c !=
'<')
241 while (is.get(
c) &&
c !=
'>')
243 entryName = entryName +
c;