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:
Markus Armbruster 2019-09-13 22:13:49 +02:00
parent b6c37ebaaf
commit 8d40738d2f
7 changed files with 18 additions and 18 deletions

View File

@ -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'

View File

@ -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

View File

@ -1 +1 @@
tests/qapi-schema/doc-missing.json:5: Expression missing documentation comment tests/qapi-schema/doc-missing.json:5: Definition missing documentation comment

View File

@ -1 +1 @@
tests/qapi-schema/doc-no-symbol.json:3: Expression documentation required tests/qapi-schema/doc-no-symbol.json:3: Definition documentation required

View File

@ -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'.

View File

@ -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

View File

@ -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