diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2022-07-06 11:08:55 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2022-07-07 10:08:38 +0200 |
commit | 43580822b7fd0261cd447985a763fcc693b0604e (patch) | |
tree | 1e60cae159263c23196b390525c03fbde3de2e22 /rtemsspec/interface.py | |
parent | spec: Specify thread idle body detail (diff) | |
download | rtems-central-43580822b7fd0261cd447985a763fcc693b0604e.tar.bz2 |
interface: Improve compound substitution
Diffstat (limited to 'rtemsspec/interface.py')
-rw-r--r-- | rtemsspec/interface.py | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/rtemsspec/interface.py b/rtemsspec/interface.py index 9df5576d..0e49fba3 100644 --- a/rtemsspec/interface.py +++ b/rtemsspec/interface.py @@ -33,11 +33,11 @@ from typing import Any, Callable, Dict, Iterator, List, NamedTuple, Optional, \ Union, Set, Tuple from rtemsspec.content import CContent, CInclude, enabled_by_to_exp, \ - ExpressionMapper, get_value_double_colon, get_value_doxygen_function, \ - get_value_doxygen_group, get_value_hash, get_value_params, \ - get_value_plural, to_camel_case -from rtemsspec.items import Item, ItemCache, ItemGetValueContext, \ - ItemGetValueMap, ItemMapper + ExpressionMapper, forward_declaration, get_value_compound, \ + get_value_double_colon, get_value_doxygen_function, \ + get_value_doxygen_group, get_value_forward_declaration, get_value_hash, \ + get_value_params, get_value_plural, to_camel_case +from rtemsspec.items import Item, ItemCache, ItemGetValueMap, ItemMapper ItemMap = Dict[str, Item] Lines = Union[str, List[str]] @@ -55,25 +55,18 @@ def _get_group_identifiers(groups: ItemMap) -> List[str]: return [item["identifier"] for item in groups.values()] -def _forward_declaration(item: Item) -> str: - target = item.parent("interface-target") - return f"{target['interface-type']} {target['name']}" - - -def _get_value_forward_declaration(ctx: ItemGetValueContext) -> Any: - return _forward_declaration(ctx.item) - - class _InterfaceMapper(ItemMapper): def __init__(self, node: "Node"): super().__init__(node.item) self._node = node self._code_or_doc = "doc" + self.add_get_value("interface/struct/code:/name", get_value_compound) + self.add_get_value("interface/union/code:/name", get_value_compound) self.add_get_value("glossary/term/doc:/plural", get_value_plural) self.add_get_value("interface/forward-declaration/code:/name", - _get_value_forward_declaration) + get_value_forward_declaration) self.add_get_value("interface/forward-declaration/doc:/name", - _get_value_forward_declaration) + get_value_forward_declaration) self.add_get_value("interface/function/doc:/name", get_value_doxygen_function) self.add_get_value("interface/function/doc:/params/name", @@ -320,7 +313,7 @@ class Node: """ Generates a forward declaration. """ self.content.append([ "", "/* Forward declaration */", - _forward_declaration(self.item) + ";" + forward_declaration(self.item) + ";" ]) def generate_function(self) -> None: |