• M
    qapi: Record 'include' directives in intermediate representation · cf40a0a5
    Markus Armbruster 提交于
    The include directive permits modular QAPI schemata, but the generated
    code is monolithic all the same.  To permit generating modular code,
    the front end needs to pass more information on inclusions to the back
    ends.  The commit before last added the necessary information to the
    parse tree.  This commit adds it to the intermediate representation
    and its QAPISchemaVisitor.  A later commit will use this to to
    generate modular code.
    
    New entity QAPISchemaInclude represents inclusions.  Call new visitor
    method visit_include() for it, so visitors can see the sub-modules a
    module includes.
    
    Note that unlike other entities, QAPISchemaInclude has no name, and is
    therefore not added to entity_dict.
    
    New QAPISchemaEntity attribute @module names the entity's source file.
    Call new visitor method visit_module() when it changes during a visit,
    so visitors can keep track of the module being visited.
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20180211093607.27351-18-armbru@redhat.com>
    [eblake: avoid accidental deletion of self._predefining]
    Signed-off-by: NEric Blake <eblake@redhat.com>
    cf40a0a5
doc-good.out 2.3 KB