From e9312e279dd296708a52c5cf7ae02305c03f4209 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 6 Aug 2020 10:24:16 +0200 Subject: applconfig: Improve interface mappings --- rtemsspec/applconfig.py | 29 ++++++++++++++++++----- rtemsspec/tests/spec-applconfig/a.yml | 4 ++++ rtemsspec/tests/spec-applconfig/define.yml | 14 +++++++++++ rtemsspec/tests/spec-applconfig/unspec-define.yml | 8 +++++++ rtemsspec/tests/spec/interface-more.yml | 12 ++++++++++ rtemsspec/tests/test_applconfig.py | 12 ++++++++-- 6 files changed, 71 insertions(+), 8 deletions(-) create mode 100644 rtemsspec/tests/spec-applconfig/define.yml create mode 100644 rtemsspec/tests/spec-applconfig/unspec-define.yml diff --git a/rtemsspec/applconfig.py b/rtemsspec/applconfig.py index bd08c8c7..fc6f48bd 100644 --- a/rtemsspec/applconfig.py +++ b/rtemsspec/applconfig.py @@ -350,12 +350,16 @@ def _get_value_sphinx_reference(ctx: ItemGetValueContext) -> Any: return _SPHINX_DOC_REFS[ctx.key] +def _get_value_sphinx_define(ctx: ItemGetValueContext) -> Any: + return f":c:macro:`{ctx.value[ctx.key]}`" + + def _get_value_sphinx_function(ctx: ItemGetValueContext) -> Any: - return f"``{ctx.value[ctx.key]}()``" + return f":c:func:`{ctx.value[ctx.key]}`" -def _get_value_sphinx_code(ctx: ItemGetValueContext) -> Any: - return f"``{ctx.value[ctx.key]}``" +def _get_value_sphinx_type(ctx: ItemGetValueContext) -> Any: + return f":c:type:`{ctx.value[ctx.key]}`" def _add_sphinx_get_values(mapper: ItemMapper) -> None: @@ -365,12 +369,19 @@ def _add_sphinx_get_values(mapper: ItemMapper) -> None: mapper.add_get_value(doc_ref, _get_value_none) mapper.add_get_value(f"{doc_ref}/{key}", _get_value_sphinx_reference) + mapper.add_get_value("interface/define:/name", _get_value_sphinx_define) mapper.add_get_value("interface/function:/name", _get_value_sphinx_function) mapper.add_get_value("interface/macro:/name", _get_value_sphinx_function) - mapper.add_get_value("interface/struct:/name", _get_value_sphinx_code) - mapper.add_get_value("interface/typedef:/name", _get_value_sphinx_code) - mapper.add_get_value("interface/union:/name", _get_value_sphinx_code) + mapper.add_get_value("interface/struct:/name", _get_value_sphinx_type) + mapper.add_get_value("interface/typedef:/name", _get_value_sphinx_type) + mapper.add_get_value("interface/union:/name", _get_value_sphinx_type) + mapper.add_get_value("interface/unspecified-define:/name", + _get_value_sphinx_define) + mapper.add_get_value("interface/unspecified-function:/name", + _get_value_sphinx_function) + mapper.add_get_value("interface/unspecified-type:/name", + _get_value_sphinx_type) def _c_user_ref(ref: str, name: str) -> str: @@ -446,12 +457,18 @@ def _add_doxygen_get_values(mapper: ItemMapper) -> None: _get_value_doxygen_reference) name = f"interface/appl-config-option/{opt}:/name" mapper.add_get_value(name, get_value_hash) + mapper.add_get_value("interface/define:/name", get_value_hash) mapper.add_get_value("interface/function:/name", get_value_doxygen_function) mapper.add_get_value("interface/macro:/name", get_value_doxygen_function) mapper.add_get_value("interface/struct:/name", get_value_double_colon) mapper.add_get_value("interface/typedef:/name", get_value_double_colon) mapper.add_get_value("interface/union:/name", get_value_double_colon) + mapper.add_get_value("interface/unspecified-define:/name", get_value_hash) + mapper.add_get_value("interface/unspecified-function:/name", + get_value_doxygen_function) + mapper.add_get_value("interface/unspecified-type:/name", + get_value_double_colon) def generate(config: dict, item_cache: ItemCache) -> None: diff --git a/rtemsspec/tests/spec-applconfig/a.yml b/rtemsspec/tests/spec-applconfig/a.yml index bde070c0..514f0ce7 100644 --- a/rtemsspec/tests/spec-applconfig/a.yml +++ b/rtemsspec/tests/spec-applconfig/a.yml @@ -16,6 +16,10 @@ notes: | * ${func:/name} * ${td:/name} + + * ${define:/name} + + * ${unspec-define:/name} appl-config-option-type: feature copyrights: - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) diff --git a/rtemsspec/tests/spec-applconfig/define.yml b/rtemsspec/tests/spec-applconfig/define.yml new file mode 100644 index 00000000..567de323 --- /dev/null +++ b/rtemsspec/tests/spec-applconfig/define.yml @@ -0,0 +1,14 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +brief: null +definition: + default: '' + variants: [] +description: null +name: DEFINE +notes: null +interface-type: define +links: [] +type: interface diff --git a/rtemsspec/tests/spec-applconfig/unspec-define.yml b/rtemsspec/tests/spec-applconfig/unspec-define.yml new file mode 100644 index 00000000..e5831da4 --- /dev/null +++ b/rtemsspec/tests/spec-applconfig/unspec-define.yml @@ -0,0 +1,8 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +copyrights: +- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) +enabled-by: true +interface-type: unspecified-define +links: [] +name: UNSPEC_DEFINE +type: interface diff --git a/rtemsspec/tests/spec/interface-more.yml b/rtemsspec/tests/spec/interface-more.yml index deaf1e60..237232bf 100644 --- a/rtemsspec/tests/spec/interface-more.yml +++ b/rtemsspec/tests/spec/interface-more.yml @@ -65,6 +65,18 @@ links: spec-key: interface-type spec-value: unspecified uid: interface +- role: spec-refinement + spec-key: interface-type + spec-value: unspecified-define + uid: interface +- role: spec-refinement + spec-key: interface-type + spec-value: unspecified-function + uid: interface +- role: spec-refinement + spec-key: interface-type + spec-value: unspecified-type + uid: interface - role: spec-refinement spec-key: interface-type spec-value: variable diff --git a/rtemsspec/tests/test_applconfig.py b/rtemsspec/tests/test_applconfig.py index e98db813..59854761 100644 --- a/rtemsspec/tests/test_applconfig.py +++ b/rtemsspec/tests/test_applconfig.py @@ -82,9 +82,13 @@ NOTES: * :ref:`Terminate` - * ``func()`` + * :c:func:`func` - * ``td`` + * :c:type:`td` + + * :c:macro:`DEFINE` + + * :c:macro:`UNSPEC_DEFINE` .. index:: b @@ -424,6 +428,10 @@ NOTES: * * func() * * * ::td + * + * * #DEFINE + * + * * #UNSPEC_DEFINE * @endparblock */ #define a -- cgit v1.2.3