qemu/scripts
Markus Armbruster ac88219a6c qapi: New QAPISchema intermediate reperesentation
The QAPI code generators work with a syntax tree (nested dictionaries)
plus a few symbol tables (also dictionaries) on the side.

They have clearly outgrown these simple data structures.  There's lots
of rummaging around in dictionaries, and information is recomputed on
the fly.  For the work I'm going to do, I want more clearly defined
and more convenient interfaces.

Going forward, I also want less coupling between the back-ends and the
syntax tree, to make messing with the syntax easier.

Create a bunch of classes to represent QAPI schemata.

Have the QAPISchema initializer call the parser, then walk the syntax
tree to create the new internal representation, and finally perform
semantic analysis.

Shortcut: the semantic analysis still relies on existing check_exprs()
to do the actual semantic checking.  All this code needs to move into
the classes.  Mark as TODO.

Simple unions are lowered to flat unions.  Flat unions and structs are
represented as a more general object type.

Catching name collisions in generated code would be nice.  Mark as
TODO.

We generate array types eagerly, even though most of them aren't used.
Mark as TODO.

Nothing uses the new intermediate representation just yet, thus no
change to generated files.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2015-09-21 09:31:29 +02:00
..
kvm kvm_stat: add kvm_stat.1 man page 2015-03-10 10:49:25 +01:00
qemu-guest-agent qemu-ga: sample fsfreeze hooks 2013-01-08 16:38:12 -06:00
qemugdb scripts/qemu-gdb: Split CoroutineCommand into its own file 2015-09-11 17:14:49 +01:00
qmp qmp-shell: add documentation 2015-09-04 13:18:04 +02:00
tracetool trace: add DTrace reserved words for .d files 2015-03-02 15:39:43 -06:00
acpi_extract_preprocess.py i386: add ACPI table files from seabios 2013-10-14 17:48:51 +03:00
acpi_extract.py i386: Add an ACPI_EXTRACT_NAME_BUFFER16 directive. 2014-11-02 11:52:24 +02:00
analyse-9p-simpletrace.py
analyze-migration.py Teach analyze-migration.py about section footers 2015-06-12 06:54:01 +02:00
check-qerror.sh
checkpatch.pl checkpatch: Escape left braces in regex 2015-09-16 17:33:33 +02:00
cleanup-trace-events.pl cleanup-trace-events.pl: Tighten search for trace event call 2014-09-26 09:34:38 +01:00
cocci-macro-file.h add macro file for coccinelle 2015-09-09 15:34:55 +02:00
coverity-model.c coverity: fix address_space_rw model 2015-05-05 10:42:11 +02:00
create_config module: implement module loading 2014-02-20 13:14:18 +01:00
disas-objdump.pl disas-objdump: Pass --adjust-vma to objdump 2013-08-24 07:26:45 +02:00
dump-guest-memory.py scripts/dump-guest-memory.py: fix after RAMBlock change 2015-09-09 15:34:55 +02:00
extract-vsssdk-headers Add a script to extract VSS SDK headers on POSIX system 2013-09-09 14:17:56 -05:00
feature_to_c.sh exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
get_maintainer.pl get_maintainer.pl: Remove the --git-chief-penguins option 2014-12-10 11:46:43 +03:00
gtester-cat
hxtool
make_device_config.sh build: pass .d file name to scripts/make_device_config.sh, fix makefile target 2015-03-18 12:07:25 +01:00
make-release make-release: Record SeaBIOS version 2014-03-31 15:02:04 +01:00
ordereddict.py
qapi-commands.py qapi: New QAPISchema intermediate reperesentation 2015-09-21 09:31:29 +02:00
qapi-event.py qapi: New QAPISchema intermediate reperesentation 2015-09-21 09:31:29 +02:00
qapi-types.py qapi: New QAPISchema intermediate reperesentation 2015-09-21 09:31:29 +02:00
qapi-visit.py qapi: New QAPISchema intermediate reperesentation 2015-09-21 09:31:29 +02:00
qapi.py qapi: New QAPISchema intermediate reperesentation 2015-09-21 09:31:29 +02:00
qemu-binfmt-conf.sh scripts/qemu-binfmt-conf.sh: Add AArch64 registration 2014-03-17 16:31:53 +00:00
qemu-gdb.py scripts/qemu-gdb: Add brief comment describing usage 2015-09-11 17:14:50 +01:00
qtest.py qtest: Add scripts/qtest.py 2015-02-16 15:07:18 +00:00
refresh-pxe-roms.sh roms: rewrite scripts/refresh-pxe-roms.sh 2013-09-30 09:44:35 +02:00
shaderinclude.pl opengl: add shader build infrastructure 2015-05-05 09:03:32 +02:00
signrom.py signrom: Rewrite as python script 2012-04-16 15:41:20 +02:00
simpletrace.py simpletrace: add simpletrace.py --no-header option 2014-08-12 14:26:11 +01:00
switch-timer-api misc: Fix case Qemu -> QEMU 2014-02-15 16:10:25 +04:00
texi2pod.pl
tracetool.py trace: Multi-backend tracing 2014-06-09 15:43:40 +02:00
update-acpi.sh acpi: add rules to compile ASL source 2013-10-14 17:48:51 +03:00
update-linux-headers.sh target-i386: move asm-x86/hyperv.h to standard-headers 2015-09-16 17:33:32 +02:00
vmstate-static-checker.py vmstate-static-checker: update whitelist 2015-02-05 17:16:14 +01:00