Lines Matching defs:parsed
430 def from_parsed(cls, parsed):
431 if parsed.kind is not cls.kind:
432 raise TypeError(f'kind mismatch ({parsed.kind.value} != {cls.kind.value})')
433 data, extra = cls._resolve_data(parsed.data)
435 cls._resolve_file(parsed),
436 parsed.name,
438 cls._resolve_parent(parsed) if parsed.parent else None,
441 self._parsed = parsed
445 def _resolve_file(cls, parsed):
446 fileinfo = FileInfo.from_raw(parsed.file)
448 raise NotImplementedError(parsed)
503 def _resolve_parent(cls, parsed, *, _kind=None):
504 fileinfo = FileInfo(parsed.file.filename, -1)
505 if isinstance(parsed.parent, str):
506 if parsed.parent.isidentifier():
507 name = parsed.parent
510 raise NotImplementedError(repr(parsed.parent))
512 elif type(parsed.parent) is tuple:
514 raise NotImplementedError(repr(parsed.parent))
516 return parsed.parent
596 return self.parsed.id
613 def parsed(self):
695 def _fmt_line(parsed, data=None):
697 f'<{parsed.kind.value}>',
700 if parsed.parent:
701 parent = parsed.parent
707 name = f'<{parent}>.{parsed.name}'
709 name = parsed.name
711 data = parsed.data
717 f'({str(parsed.file or "<unknown file>")})',
722 def _fmt_full(parsed, data=None):
723 if parsed.kind is KIND.VARIABLE and parsed.parent:
725 suffix = f' ({parsed.parent.name})'
729 yield f'{prefix}{parsed.kind.value} {parsed.name!r}{suffix}'
730 for column, info in parsed.render_rowdata().items():
735 if column == 'parent' and parsed.kind is not KIND.VARIABLE:
738 if parsed.kind in (KIND.STRUCT, KIND.UNION):
740 elif parsed.kind is KIND.ENUM:
742 elif parsed.kind is KIND.STATEMENT:
800 def _resolve_parent(cls, parsed, *, _kind=None):
802 raise TypeError(f'{cls.kind.value} declarations do not have parents ({parsed})')
803 return super()._resolve_parent(parsed, _kind=_kind)
890 def _resolve_parent(cls, parsed):
891 return super()._resolve_parent(parsed, _kind=KIND.FUNCTION)
1347 def resolve_parsed(parsed):
1348 if isinstance(parsed, HighlevelParsedItem):
1349 return parsed
1351 cls = KIND_CLASSES[parsed.kind]
1353 raise ValueError(f'unsupported kind in {parsed!r}')
1354 return cls.from_parsed(parsed)