@@ -250,6 +250,13 @@ def _nodes_for_features(self, doc):
section += dlnode
return [section]
+ def _nodes_for_returns(self, doc, ret_type):
+ if doc.returns:
+ section = self._make_section('Returns')
+ self._parse_text_into_node(doc.returns.text, section)
+ return [section]
+ return []
+
def _nodes_for_since(self, doc):
if doc.since:
# TODO emphasis
@@ -343,6 +350,7 @@ def visit_command(self, name, info, ifcond, features, arg_type,
self._add_doc('Command',
self._nodes_for_arguments(doc,
arg_type if boxed else None)
+ + self._nodes_for_returns(doc, ret_type)
+ self._nodes_for_features(doc)
+ self._nodes_for_sections(doc)
+ self._nodes_for_if_section(ifcond)
@@ -646,7 +646,7 @@ def __init__(self, info: QAPISourceInfo, symbol: Optional[str] = None):
self.errors: Optional[QAPIDoc.Section] = None
# "Since" section
self.since: Optional[QAPIDoc.Section] = None
- # sections other than .body, .args, .features, .since
+ # sections other than .body, .args, .features, .returns, .since
self.sections: List[QAPIDoc.Section] = []
def end(self) -> None:
@@ -683,7 +683,7 @@ def new_tagged_section(self, info: QAPISourceInfo, tag: str) -> None:
raise QAPISemError(
info, "duplicated '%s' section" % tag)
self.since = section
- if tag != 'Since':
+ if tag not in ('Returns', 'Since'):
self.sections.append(section)
self.all_sections.append(section)
@@ -165,14 +165,14 @@ description starts on the same line
remainder indented differently
arg=arg3
+ section=Returns
+@Object
feature=cmd-feat1
a feature
feature=cmd-feat2
another feature
section=Note
@arg3 is undocumented
- section=Returns
-@Object
section=Errors
some
section=TODO
@@ -184,6 +184,12 @@ Arguments
Not documented
+Returns
+~~~~~~~
+
+"Object"
+
+
Features
~~~~~~~~
@@ -200,12 +206,6 @@ Note
"arg3" is undocumented
-Returns
-~~~~~~~
-
-"Object"
-
-
Errors
~~~~~~
@@ -127,6 +127,8 @@ def test_frontend(fname):
print(' body=\n%s' % doc.body.text)
for arg, section in doc.args.items():
print(' arg=%s\n%s' % (arg, section.text))
+ if doc.returns:
+ print(' section=%s\n%s' % (doc.returns.tag, doc.returns.text))
for feat, section in doc.features.items():
print(' feature=%s\n%s' % (feat, section.text))
for section in doc.sections: