summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-12-01 14:21:50 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-12-01 14:27:40 +0100
commitc37ffc007b78decfaaafe17e0b9069cebc210ffe (patch)
treeac2d465803358335a6b7accb1d94b7d633eea41e
parentspec: Adjust link role for some design groups (diff)
downloadrtems-central-c37ffc007b78decfaaafe17e0b9069cebc210ffe.tar.bz2
specview.py: Add "api" filter
-rwxr-xr-xspecview.py37
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__":