[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 14/26] qapi: qapi.py, make json parser more robus
From: |
Michael Roth |
Subject: |
[Qemu-devel] [PATCH v4 14/26] qapi: qapi.py, make json parser more robust |
Date: |
Fri, 12 Oct 2012 16:10:56 -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 v4 06/26] qapi: qapi_visit.py, support generating static functions, (continued)
- [Qemu-devel] [PATCH v4 06/26] qapi: qapi_visit.py, support generating static functions, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 08/26] qapi: add visitor interfaces for C arrays, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 07/26] qapi: qapi_visit.py, support for visiting non-pointer/embedded structs, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 10/26] qapi: QmpInputVisitor, implement array handling, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 09/26] qapi: QmpOutputVisitor, implement array handling, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 12/26] qapi: fix potential segfault for visit_type_size(), Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 13/26] qapi: ordereddict, add to_json() method, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 15/26] qapi: add open-coded visitor for struct tm types, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 11/26] qapi: QmpInputVisitor, don't re-allocate memory in start_struct, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 19/26] module additions for schema registration, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 14/26] qapi: qapi.py, make json parser more robust,
Michael Roth <=
- [Qemu-devel] [PATCH v4 17/26] qom-fuse: force single-threaded mode to avoid QMP races, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 18/26] qom-fuse: workaround for truncated properties > 4096, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 16/26] qapi: Improve existing docs and document annotated QAPI types, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 20/26] qdev: move Property-related declarations to qdev-properties.h, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 21/26] qidl: add documentation, Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 22/26] qidl: add lexer library (based on QC parser), Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 23/26] qidl: add C parser (based on QC parser), Michael Roth, 2012/10/12
- [Qemu-devel] [PATCH v4 24/26] qidl: add QAPI-based code generator, Michael Roth, 2012/10/12