Eric Blake <[email protected]> writes:
> On 03/13/2017 01:18 AM, Markus Armbruster wrote:
>> This fixes the errors uncovered by the previous commit.
>>
>> Signed-off-by: Markus Armbruster <[email protected]>
>> ---
>
>>
>> expr = self.get_expr(False)
>> if 'include' in expr:
>> + self.reject_expr_doc()
>> if len(expr) != 1:
>
> Do you also need to handle 'pragma' expressions added earlier in the series?
Yes.
> /me goes and experiments:
>
> diff --git i/tests/qapi-schema/doc-bad-expr.json
> w/tests/qapi-schema/doc-bad-expr.json
> index 0caa0ae..6c1204d 100644
> --- i/tests/qapi-schema/doc-bad-expr.json
> +++ w/tests/qapi-schema/doc-bad-expr.json
> @@ -4,4 +4,5 @@
> # @foo:
> ##
> { 'include': 'empty.json' }
> +{ 'pragma': {} }
> { 'struct': 'foo', 'data': {} }
>
> Oops - back to accepting the program.
Need to squash in
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 1dc33c9..8d55ff4 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -301,6 +301,7 @@ class QAPISchemaParser(object):
self._include(include, info, os.path.dirname(abs_fname),
previously_included)
elif "pragma" in expr:
+ self.reject_expr_doc()
if len(expr) != 1:
raise QAPISemError(info, "Invalid 'pragma' directive")
for name, value in expr['pragma'].iteritems():