docs/devel/qapi-code-gen.txt | 21 +-
docs/interop/qmp-spec.txt | 2 +-
include/qapi/string-input-visitor.h | 4 +-
include/qemu/cutils.h | 8 +-
migration/colo.c | 16 +-
monitor.c | 7 +-
qapi/block-core.json | 26 +-
qapi/char.json | 150 ++++----
qapi/migration.json | 15 +-
qapi/misc.json | 7 +-
qapi/net.json | 3 +-
qapi/qobject-input-visitor.c | 9 +-
qapi/string-input-visitor.c | 407 ++++++++++++---------
qapi/tpm.json | 5 +-
qapi/ui.json | 3 +-
qobject/json-parser.c | 5 +
scripts/qapi/common.py | 207 +++++++----
scripts/qapi/doc.py | 31 +-
scripts/qapi/events.py | 13 +-
scripts/qapi/introspect.py | 17 +-
scripts/qapi/types.py | 10 +-
scripts/qapi/visit.py | 8 +-
tests/Makefile.include | 11 +-
tests/qapi-schema/alternate-base.err | 1 +
tests/qapi-schema/alternate-invalid-dict.err | 1 +
...ict-member.exit => alternate-invalid-dict.exit} | 0
tests/qapi-schema/alternate-invalid-dict.json | 4 +
...-dict-member.out => alternate-invalid-dict.out} | 0
tests/qapi-schema/comments.out | 14 +-
tests/qapi-schema/doc-bad-section.out | 13 +-
tests/qapi-schema/doc-good.json | 11 +-
tests/qapi-schema/doc-good.out | 22 +-
tests/qapi-schema/doc-good.texi | 7 +-
tests/qapi-schema/double-type.err | 1 +
tests/qapi-schema/empty.out | 9 +-
tests/qapi-schema/enum-bad-member.err | 1 +
tests/qapi-schema/enum-bad-member.exit | 1 +
tests/qapi-schema/enum-bad-member.json | 2 +
tests/qapi-schema/enum-bad-member.out | 0
tests/qapi-schema/enum-dict-member-unknown.err | 2 +
tests/qapi-schema/enum-dict-member-unknown.exit | 1 +
tests/qapi-schema/enum-dict-member-unknown.json | 2 +
tests/qapi-schema/enum-dict-member-unknown.out | 0
tests/qapi-schema/enum-dict-member.err | 1 -
tests/qapi-schema/enum-dict-member.json | 2 -
tests/qapi-schema/enum-if-invalid.err | 1 +
tests/qapi-schema/enum-if-invalid.exit | 1 +
tests/qapi-schema/enum-if-invalid.json | 3 +
tests/qapi-schema/enum-if-invalid.out | 0
tests/qapi-schema/event-case.out | 9 +-
tests/qapi-schema/event-member-invalid-dict.err | 1 +
tests/qapi-schema/event-member-invalid-dict.exit | 1 +
tests/qapi-schema/event-member-invalid-dict.json | 2 +
tests/qapi-schema/event-member-invalid-dict.out | 0
tests/qapi-schema/event-nest-struct.json | 2 +-
.../qapi-schema/flat-union-inline-invalid-dict.err | 1 +
.../flat-union-inline-invalid-dict.exit | 1 +
.../flat-union-inline-invalid-dict.json | 11 +
.../qapi-schema/flat-union-inline-invalid-dict.out | 0
tests/qapi-schema/flat-union-inline.json | 2 +-
.../flat-union-invalid-if-discriminator.err | 1 +
.../flat-union-invalid-if-discriminator.exit | 1 +
.../flat-union-invalid-if-discriminator.json | 17 +
.../flat-union-invalid-if-discriminator.out | 0
tests/qapi-schema/ident-with-escape.out | 9 +-
tests/qapi-schema/include-relpath.out | 14 +-
tests/qapi-schema/include-repetition.out | 14 +-
tests/qapi-schema/include-simple.out | 14 +-
tests/qapi-schema/indented-expr.out | 9 +-
.../nested-struct-data-invalid-dict.err | 1 +
.../nested-struct-data-invalid-dict.exit | 1 +
.../nested-struct-data-invalid-dict.json | 3 +
.../nested-struct-data-invalid-dict.out | 0
tests/qapi-schema/nested-struct-data.json | 2 +-
tests/qapi-schema/qapi-schema-test.json | 39 +-
tests/qapi-schema/qapi-schema-test.out | 74 +++-
tests/qapi-schema/struct-member-invalid-dict.err | 1 +
tests/qapi-schema/struct-member-invalid-dict.exit | 1 +
tests/qapi-schema/struct-member-invalid-dict.json | 3 +
tests/qapi-schema/struct-member-invalid-dict.out | 0
tests/qapi-schema/test-qapi.py | 9 +-
tests/qapi-schema/union-branch-invalid-dict.err | 1 +
tests/qapi-schema/union-branch-invalid-dict.exit | 1 +
tests/qapi-schema/union-branch-invalid-dict.json | 4 +
tests/qapi-schema/union-branch-invalid-dict.out | 0
tests/qapi-schema/unknown-expr-key.err | 3 +-
tests/qapi-schema/unknown-expr-key.json | 2 +-
tests/qemu-iotests/229 | 1 -
tests/test-cutils.c | 24 +-
tests/test-string-input-visitor.c | 223 +++++++++--
util/cutils.c | 83 ++++-
91 files changed, 1163 insertions(+), 507 deletions(-)
create mode 100644 tests/qapi-schema/alternate-invalid-dict.err
rename tests/qapi-schema/{enum-dict-member.exit => alternate-invalid-dict.exit} (100%)
create mode 100644 tests/qapi-schema/alternate-invalid-dict.json
rename tests/qapi-schema/{enum-dict-member.out => alternate-invalid-dict.out} (100%)
create mode 100644 tests/qapi-schema/enum-bad-member.err
create mode 100644 tests/qapi-schema/enum-bad-member.exit
create mode 100644 tests/qapi-schema/enum-bad-member.json
create mode 100644 tests/qapi-schema/enum-bad-member.out
create mode 100644 tests/qapi-schema/enum-dict-member-unknown.err
create mode 100644 tests/qapi-schema/enum-dict-member-unknown.exit
create mode 100644 tests/qapi-schema/enum-dict-member-unknown.json
create mode 100644 tests/qapi-schema/enum-dict-member-unknown.out
delete mode 100644 tests/qapi-schema/enum-dict-member.err
delete mode 100644 tests/qapi-schema/enum-dict-member.json
create mode 100644 tests/qapi-schema/enum-if-invalid.err
create mode 100644 tests/qapi-schema/enum-if-invalid.exit
create mode 100644 tests/qapi-schema/enum-if-invalid.json
create mode 100644 tests/qapi-schema/enum-if-invalid.out
create mode 100644 tests/qapi-schema/event-member-invalid-dict.err
create mode 100644 tests/qapi-schema/event-member-invalid-dict.exit
create mode 100644 tests/qapi-schema/event-member-invalid-dict.json
create mode 100644 tests/qapi-schema/event-member-invalid-dict.out
create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.err
create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.exit
create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.json
create mode 100644 tests/qapi-schema/flat-union-inline-invalid-dict.out
create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.err
create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.exit
create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.json
create mode 100644 tests/qapi-schema/flat-union-invalid-if-discriminator.out
create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.err
create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.exit
create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.json
create mode 100644 tests/qapi-schema/nested-struct-data-invalid-dict.out
create mode 100644 tests/qapi-schema/struct-member-invalid-dict.err
create mode 100644 tests/qapi-schema/struct-member-invalid-dict.exit
create mode 100644 tests/qapi-schema/struct-member-invalid-dict.json
create mode 100644 tests/qapi-schema/struct-member-invalid-dict.out
create mode 100644 tests/qapi-schema/union-branch-invalid-dict.err
create mode 100644 tests/qapi-schema/union-branch-invalid-dict.exit
create mode 100644 tests/qapi-schema/union-branch-invalid-dict.json
create mode 100644 tests/qapi-schema/union-branch-invalid-dict.out