[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 16/28] qapi: qapi.py, make json parser more robust
From: |
Michael Roth |
Subject: |
[Qemu-devel] [PATCH 16/28] qapi: qapi.py, make json parser more robust |
Date: |
Wed, 31 Oct 2012 17:36:00 -0500 |
Currently the QAPI JSON parser expects a very particular style of code
indentation, the major one being that terminating curly/square brackets are
not on placed on a seperate line. This is incompatible with most
pretty-print formats, so make it a little more robust by supporting
these cases.
Also add support for parsing numerical fields. Currently they are
ignored.
QIDL will make use of both of these changes with the schemas it
generates.
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
---
scripts/qapi.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 555d823..333f375 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -37,6 +37,12 @@ def tokenize(data):
else:
string += ch
yield string
+ elif ch.isdigit():
+ number = ch
+ while data[0].isdigit():
+ number += data[0]
+ data = data[1:]
+ yield number
def parse(tokens):
if tokens[0] == '{':
@@ -81,7 +87,7 @@ def parse_schema(fp):
if line.startswith('#') or line == '\n':
continue
- if line.startswith(' '):
+ if line[0] in ['}', ']', ' ', '\t']:
expr += line
elif expr:
expr_eval = evaluate(expr)
--
1.7.9.5
- [Qemu-devel] [PATCH v6 00/28] Add infrastructure for QIDL-based device serialization (Happy Halloween Edition), Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 01/28] qapi: qapi-visit.py -> qapi_visit.py so we can import, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 03/28] qapi: qapi-commands.py -> qapi_commands.py, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 06/28] qapi: qapi_visit.py, support generating static functions, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 02/28] qapi: qapi-types.py -> qapi_types.py, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 04/28] qapi: qapi_visit.py, make code useable as module, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 05/28] qapi: qapi_visit.py, support arrays and complex qapi definitions, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 07/28] qapi: qapi_visit.py, support for visiting non-pointer/embedded structs, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 08/28] qapi: qapi_visit.py, support for q_string annotations, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 11/28] qapi: QmpInputVisitor, implement array handling, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 16/28] qapi: qapi.py, make json parser more robust,
Michael Roth <=
- [Qemu-devel] [PATCH 14/28] qapi: add visit_type_long(), Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 13/28] qapi: fix potential segfault for visit_type_size(), Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 09/28] qapi: add visitor interfaces for C arrays, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 12/28] qapi: QmpInputVisitor, don't re-allocate memory in start_struct, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 19/28] qom-fuse: force single-threaded mode to avoid QMP races, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 20/28] qom-fuse: workaround for truncated properties > 4096, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 10/28] qapi: QmpOutputVisitor, implement array handling, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 15/28] qapi: ordereddict, add to_json() method, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 22/28] qdev: move Property-related declarations to qdev-properties.h, Michael Roth, 2012/10/31
- [Qemu-devel] [PATCH 21/28] module additions for schema registration, Michael Roth, 2012/10/31