Lines Matching defs:fdata

70     def warn(self, fdata, msg, extra=None):
76 msg = f"{fdata.fname}:{fdata.ln}: {msg}"
97 def _parse_line(self, fdata, line):
114 if fdata.tag == "description":
118 elif fdata.tag != "":
119 self.warn(fdata, f"tag '{fdata.tag}' is invalid", line)
124 self.warn(fdata, "tag 'Where' is invalid. Should be 'What:' instead")
128 fdata.space = None
131 self.add_symbol(what=content, fname=fdata.fname, ln=fdata.ln)
133 if fdata.tag == "what":
134 fdata.what.append(content.strip("\n"))
136 if fdata.key:
137 if "description" not in self.data.get(fdata.key, {}):
138 self.warn(fdata, f"{fdata.key} doesn't have a description")
140 for w in fdata.what:
141 self.add_symbol(what=w, fname=fdata.fname,
142 ln=fdata.what_ln, xref=fdata.key)
144 fdata.label = content
148 fdata.key = self.re_unprintable.sub("_", key).strip("_")
155 while fdata.key in self.data:
160 fdata.key += chr(char)
162 if fdata.key and fdata.key not in self.data:
163 self.data[fdata.key] = {
165 "file": [fdata.file_ref],
166 "path": fdata.ftype,
167 "line_no": fdata.ln,
170 fdata.what = self.data[fdata.key]["what"]
172 self.what_refs[content] = fdata.key
173 fdata.tag = new_tag
174 fdata.what_ln = fdata.ln
176 if fdata.nametag["what"]:
177 t = (content, fdata.key)
178 if t not in fdata.nametag["symbols"]:
179 fdata.nametag["symbols"].append(t)
183 if fdata.tag and new_tag:
184 fdata.tag = new_tag
187 fdata.label = ""
189 if "description" in self.data[fdata.key]:
190 self.data[fdata.key]["description"] += "\n\n"
192 if fdata.file_ref not in self.data[fdata.key]["file"]:
193 self.data[fdata.key]["file"].append(fdata.file_ref)
196 self.log.debug("what: %s", fdata.what)
198 if not fdata.what:
199 self.warn(fdata, "'What:' should come first:", line)
203 fdata.space = None
214 fdata.space = match.group(1)
217 self.data[fdata.key][fdata.tag] = content
222 if not fdata.tag and "what" in fdata.nametag:
223 fdata.nametag["description"] += line
226 if fdata.tag == "description":
230 self.data[fdata.key][fdata.tag] += "\n"
233 if fdata.space is None:
237 fdata.space = match.group(1)
241 if content.startswith(fdata.space):
242 content = content[len(fdata.space):]
245 fdata.space = ""
247 if fdata.tag == "what":
250 self.data[fdata.key][fdata.tag].append(w)
252 self.data[fdata.key][fdata.tag] += content
256 if fdata.tag:
257 if fdata.tag == "what":
260 self.data[fdata.key][fdata.tag].append(w)
262 self.data[fdata.key][fdata.tag] += "\n" + content.rstrip("\n")
267 self.warn(fdata, "Unexpected content", line)
295 fdata = Namespace
297 fdata.fname = fname
298 fdata.name = basename
306 fdata.file_ref = (f, ref)
309 fdata.ln = 0
310 fdata.what_ln = 0
311 fdata.tag = ""
312 fdata.label = ""
313 fdata.what = []
314 fdata.key = None
315 fdata.xrefs = None
316 fdata.space = None
317 fdata.ftype = path.split("/")[0]
319 fdata.nametag = {}
320 fdata.nametag["what"] = [f"ABI file {path}/{basename}"]
321 fdata.nametag["type"] = "File"
322 fdata.nametag["path"] = fdata.ftype
323 fdata.nametag["file"] = [fdata.file_ref]
324 fdata.nametag["line_no"] = 1
325 fdata.nametag["description"] = ""
326 fdata.nametag["symbols"] = []
328 self.data[ref] = fdata.nametag
334 self.parse_readme(fdata.nametag, fname)
339 fdata.ln += 1
341 self._parse_line(fdata, line)
343 if "description" in fdata.nametag:
344 fdata.nametag["description"] = fdata.nametag["description"].lstrip("\n")
346 if fdata.key:
347 if "description" not in self.data.get(fdata.key, {}):
348 self.warn(fdata, f"{fdata.key} doesn't have a description")
350 for w in fdata.what:
351 self.add_symbol(what=w, fname=fname, xref=fdata.key)