On 02/02/2018 07:03 AM, Markus Armbruster wrote: > These classes encapsulate accumulating and writing output. > > Convert C code generation to QAPIGenC and QAPIGenH. The conversion is > rather shallow: most of the output accumulation is not converted. > Left for later. > > The indentation machinery uses a single global variable indent_level, > even though we generally interleave creation of a .c and its .h. It > should become instance variable of QAPIGenC. Also left for later. > > Documentation generation isn't converted, and QAPIGenDoc isn't used. > This will change shortly. > > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > scripts/qapi-commands.py | 27 ++++++------- > scripts/qapi-event.py | 26 +++++++------ > scripts/qapi-introspect.py | 22 ++++++----- > scripts/qapi-types.py | 26 +++++++------ > scripts/qapi-visit.py | 26 +++++++------ > scripts/qapi.py | 96 > ++++++++++++++++++++++++++-------------------- > 6 files changed, 122 insertions(+), 101 deletions(-) >
A little bit longer due to more structure, but reasonable diffstat in that it shows the conversion is fairly straightforward and opens the doors for later patches to use the new structures more effectively. > > schema = QAPISchema(input_file) > -gen = QAPISchemaGenEventVisitor() > -schema.visit(gen) > -fdef.write(gen.defn) > -fdecl.write(gen.decl) > +vis = QAPISchemaGenEventVisitor() > +schema.visit(vis) > +genc.body(vis.defn) > +genh.body(vis.decl) I don't know if it is worth a sentence in the commit message that the visitor variable is renamed from 'gen' to 'vis' for less confusion with the new class instances 'genc' and 'genh'. > +++ b/scripts/qapi-types.py > @@ -180,7 +180,7 @@ class QAPISchemaGenTypeVisitor(QAPISchemaVisitor): > self.decl = '' > self.defn = '' > self._fwdecl = '' > - self._btin = guardstart('QAPI_TYPES_BUILTIN') > + self._btin = '\n' + guardstart('QAPI_TYPES_BUILTIN') Tweaks like this means you were paying attention to still producing identical generated files; always a good sign. Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature