36 const fileName& fName,
37 const string& startTag,
38 const string& searchStr,
39 const bool exactMatch,
46 const regExp nameRe(
".*.H");
47 const regExp searchStrRe(searchStr);
50 const string slashStartTag(
'/' + startTag);
51 const string kindFileStr(
"kind=\"file\"");
52 const word compoundWord(
"compound");
53 const word nameWord(
"name");
54 const word pathWord(
"path");
55 const word filenameWord(
"filename");
60 skipForward(is, startTag);
71 bool readingParam =
false;
72 while (is.get(
c) &&
c !=
'>')
86 blockName = blockName +
c;
91 if (blockName == slashStartTag)
96 if ((blockName == compoundWord) && (params == kindFileStr))
102 bool foundName =
false;
103 bool foundPath =
false;
104 bool foundFName =
false;
105 bool earlyExit =
false;
106 while (!foundName || !foundPath || !foundFName)
109 getEntry<word>(is, entryName);
110 if (entryName == nameWord)
112 getValue<word>(is,
name);
113 if (nameRe.match(
name))
123 else if (entryName == pathWord)
125 getValue<fileName>(is,
path);
128 if (searchStrRe.match(
path))
138 else if (entryName == filenameWord)
140 getValue<word>(is, fName);
145 skipBlock(is, entryName);
149 if (foundPath && !earlyExit)
151 word tName(
path.components().last());
157 if (exactMatch && (tName +
"." + ext) ==
name)
161 dict.add(
"filename", fName +
".html");
174 dict.add(
"filename", fName +
".html");
181 skipBlock(is, blockName);
185 skipBlock(is, blockName);
197 const word& blockName
204 while (is.good() && (closeName != blockName))
207 while (is.get(
c) &&
c !=
'<')
211 if (is.get(
c) &&
c ==
'/')
215 while (is.get(
c) &&
c !=
'>')
227 const word& blockName
231 string entryName =
"";
234 while (is.good() && (entryName != blockName))
239 while (is.get(
c) &&
c !=
'<')
242 while (is.get(
c) &&
c !=
'>')
244 entryName = entryName +
c;