qapi: Tweak code to match docs/devel/qapi-code-gen.txt
The previous commit made qapi-code-gen.txt define "(top-level) expression" as either "directive" or "definition". The code still uses "expression" when it really means "definition". Tidy up. The previous commit made qapi-code-gen.txt use "object" rather than "dictionary". The code still uses "dictionary". Tidy up. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20190913201349.24332-17-armbru@redhat.com>
This commit is contained in:
parent
b6c37ebaaf
commit
8d40738d2f
@ -103,11 +103,11 @@ class QAPISemError(QAPIError):
|
|||||||
|
|
||||||
class QAPIDoc(object):
|
class QAPIDoc(object):
|
||||||
"""
|
"""
|
||||||
A documentation comment block, either expression or free-form
|
A documentation comment block, either definition or free-form
|
||||||
|
|
||||||
Expression documentation blocks consist of
|
Definition documentation blocks consist of
|
||||||
|
|
||||||
* a body section: one line naming the expression, followed by an
|
* a body section: one line naming the definition, followed by an
|
||||||
overview (any number of lines)
|
overview (any number of lines)
|
||||||
|
|
||||||
* argument sections: a description of each argument (for commands
|
* argument sections: a description of each argument (for commands
|
||||||
@ -200,9 +200,9 @@ class QAPIDoc(object):
|
|||||||
Process a line of documentation text in the body section.
|
Process a line of documentation text in the body section.
|
||||||
|
|
||||||
If this a symbol line and it is the section's first line, this
|
If this a symbol line and it is the section's first line, this
|
||||||
is an expression documentation block for that symbol.
|
is a definition documentation block for that symbol.
|
||||||
|
|
||||||
If it's an expression documentation block, another symbol line
|
If it's a definition documentation block, another symbol line
|
||||||
begins the argument section for the argument named by it, and
|
begins the argument section for the argument named by it, and
|
||||||
a section tag begins an additional section. Start that
|
a section tag begins an additional section. Start that
|
||||||
section and append the line to it.
|
section and append the line to it.
|
||||||
@ -220,7 +220,7 @@ class QAPIDoc(object):
|
|||||||
if not self.symbol:
|
if not self.symbol:
|
||||||
raise QAPIParseError(self._parser, "Invalid name")
|
raise QAPIParseError(self._parser, "Invalid name")
|
||||||
elif self.symbol:
|
elif self.symbol:
|
||||||
# This is an expression documentation block
|
# This is a definition documentation block
|
||||||
if name.startswith('@') and name.endswith(':'):
|
if name.startswith('@') and name.endswith(':'):
|
||||||
self._append_line = self._append_args_line
|
self._append_line = self._append_args_line
|
||||||
self._append_args_line(line)
|
self._append_args_line(line)
|
||||||
@ -428,7 +428,7 @@ class QAPISchemaParser(object):
|
|||||||
pragma = expr['pragma']
|
pragma = expr['pragma']
|
||||||
if not isinstance(pragma, dict):
|
if not isinstance(pragma, dict):
|
||||||
raise QAPISemError(
|
raise QAPISemError(
|
||||||
info, "Value of 'pragma' must be a dictionary")
|
info, "Value of 'pragma' must be an object")
|
||||||
for name, value in pragma.items():
|
for name, value in pragma.items():
|
||||||
self._pragma(name, value, info)
|
self._pragma(name, value, info)
|
||||||
else:
|
else:
|
||||||
@ -437,7 +437,7 @@ class QAPISchemaParser(object):
|
|||||||
if cur_doc:
|
if cur_doc:
|
||||||
if not cur_doc.symbol:
|
if not cur_doc.symbol:
|
||||||
raise QAPISemError(
|
raise QAPISemError(
|
||||||
cur_doc.info, "Expression documentation required")
|
cur_doc.info, "Definition documentation required")
|
||||||
expr_elem['doc'] = cur_doc
|
expr_elem['doc'] = cur_doc
|
||||||
self.exprs.append(expr_elem)
|
self.exprs.append(expr_elem)
|
||||||
cur_doc = None
|
cur_doc = None
|
||||||
@ -789,7 +789,7 @@ def check_type(info, source, value,
|
|||||||
|
|
||||||
if not isinstance(value, OrderedDict):
|
if not isinstance(value, OrderedDict):
|
||||||
raise QAPISemError(info,
|
raise QAPISemError(info,
|
||||||
"%s should be a dictionary or type name" % source)
|
"%s should be an object or type name" % source)
|
||||||
|
|
||||||
# value is a dictionary, check that each member is okay
|
# value is a dictionary, check that each member is okay
|
||||||
for (key, arg) in value.items():
|
for (key, arg) in value.items():
|
||||||
@ -971,8 +971,8 @@ def check_enum(expr, info):
|
|||||||
"Enum '%s' requires a string for 'prefix'" % name)
|
"Enum '%s' requires a string for 'prefix'" % name)
|
||||||
|
|
||||||
for member in members:
|
for member in members:
|
||||||
source = "dictionary member of enum '%s'" % name
|
check_known_keys(info, "member of enum '%s'" % name, member,
|
||||||
check_known_keys(info, source, member, ['name'], ['if'])
|
['name'], ['if'])
|
||||||
check_if(member, info)
|
check_if(member, info)
|
||||||
check_name(info, "Member of enum '%s'" % name, member['name'],
|
check_name(info, "Member of enum '%s'" % name, member['name'],
|
||||||
enum_member=True)
|
enum_member=True)
|
||||||
@ -1081,7 +1081,7 @@ def check_exprs(exprs):
|
|||||||
|
|
||||||
if not doc and doc_required:
|
if not doc and doc_required:
|
||||||
raise QAPISemError(info,
|
raise QAPISemError(info,
|
||||||
"Expression missing documentation comment")
|
"Definition missing documentation comment")
|
||||||
|
|
||||||
if 'enum' in expr:
|
if 'enum' in expr:
|
||||||
meta = 'enum'
|
meta = 'enum'
|
||||||
|
@ -1 +1 @@
|
|||||||
tests/qapi-schema/args-invalid.json:1: 'data' for command 'foo' should be a dictionary or type name
|
tests/qapi-schema/args-invalid.json:1: 'data' for command 'foo' should be an object or type name
|
||||||
|
@ -1 +1 @@
|
|||||||
tests/qapi-schema/doc-missing.json:5: Expression missing documentation comment
|
tests/qapi-schema/doc-missing.json:5: Definition missing documentation comment
|
||||||
|
@ -1 +1 @@
|
|||||||
tests/qapi-schema/doc-no-symbol.json:3: Expression documentation required
|
tests/qapi-schema/doc-no-symbol.json:3: Definition documentation required
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
tests/qapi-schema/enum-dict-member-unknown.json:2: Unknown key 'bad-key' in dictionary member of enum 'MyEnum'
|
tests/qapi-schema/enum-dict-member-unknown.json:2: Unknown key 'bad-key' in member of enum 'MyEnum'
|
||||||
Valid keys are 'if', 'name'.
|
Valid keys are 'if', 'name'.
|
||||||
|
@ -1 +1 @@
|
|||||||
tests/qapi-schema/pragma-non-dict.json:3: Value of 'pragma' must be a dictionary
|
tests/qapi-schema/pragma-non-dict.json:3: Value of 'pragma' must be an object
|
||||||
|
@ -1 +1 @@
|
|||||||
tests/qapi-schema/struct-data-invalid.json:1: 'data' for struct 'foo' should be a dictionary or type name
|
tests/qapi-schema/struct-data-invalid.json:1: 'data' for struct 'foo' should be an object or type name
|
||||||
|
Loading…
Reference in New Issue
Block a user