On 07/26/2013 06:39 AM, Markus Armbruster wrote: > Fixes at least the following parser bugs: > > * accepts any token in place of a colon > > * treats comma as optional > > * crashes when closing braces or brackets are missing > > Signed-off-by: Markus Armbruster <[email protected]> > --- > scripts/qapi.py | 40 > ++++++++++++++++++++++++++--------- > tests/qapi-schema/missing-colon.err | 1 + > tests/qapi-schema/missing-colon.exit | 2 +- > tests/qapi-schema/missing-colon.out | 3 --- > tests/qapi-schema/missing-comma.err | 1 + > tests/qapi-schema/missing-comma.exit | 2 +- > tests/qapi-schema/missing-comma.out | 3 --- > tests/qapi-schema/unclosed-object.err | 2 +- > 8 files changed, 35 insertions(+), 19 deletions(-) >
>
> def get_values(self):
> expr = []
> - while self.tok != ']':
> + if self.tok == ']':
> + self.accept()
> + return expr
> + if not self.tok in [ '{', '[', "'" ]:
> + raise QAPISchemaError(self, 'Expected "{", "[", "]" or string')
JSON allows primitives here, as in [ 1 ]; but I agree that for the
purposes of our schema we will always be taking a string or complex
object whenever we have a list.
Reviewed-by: Eric Blake <[email protected]>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
