diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-12-01 14:21:50 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-12-01 14:27:40 +0100 |
commit | c37ffc007b78decfaaafe17e0b9069cebc210ffe (patch) | |
tree | ac2d465803358335a6b7accb1d94b7d633eea41e | |
parent | spec: Adjust link role for some design groups (diff) | |
download | rtems-central-c37ffc007b78decfaaafe17e0b9069cebc210ffe.tar.bz2 |
specview.py: Add "api" filter
-rwxr-xr-x | specview.py | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/specview.py b/specview.py index f976210b..10b14a7d 100755 --- a/specview.py +++ b/specview.py @@ -333,13 +333,43 @@ def _action_list(enabled: List[str], item: Item) -> None: print(" * " + ", ".join(entries)) +_API_INTERFACES = [ + "interface/appl-config-option/feature", + "interface/appl-config-option/initializer", + "interface/appl-config-option/integer", + "interface/function", + "interface/macro", +] + +_API_ROLES = [ + "requirement-refinement", + "interface-placement", + "appl-config-group-member", +] + + +def _gather_api_names(item: Item, names: List[str]) -> None: + if item.type in _API_INTERFACES and _is_pre_qualified(item): + names.append(item["name"]) + for child in item.children(_API_ROLES): + _gather_api_names(child, names) + + +def _list_api(item_cache: ItemCache) -> None: + names = [] # List[str] + _gather_api_names(item_cache["/if/domain"], names) + _gather_api_names(item_cache["/acfg/if/domain"], names) + for name in sorted(names): + print(name) + + def main() -> None: """ Views the specification. """ parser = argparse.ArgumentParser() parser.add_argument('--filter', choices=[ - "none", "orphan", "no-validation", "action-table", - "action-list" + "none", "api", "orphan", "no-validation", + "action-table", "action-list" ], type=str.lower, default="none", @@ -384,6 +414,9 @@ def main() -> None: elif args.filter == "no-validation": _validate(root, enabled) _no_validation(root, [], enabled) + elif args.filter == "api": + _validate(root, enabled) + _list_api(item_cache) if __name__ == "__main__": |