From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: marcandre.lureau@redhat.com, jsnow@redhat.com, michael.roth@amd.com
Subject: [PATCH 01/12] qapi: Simplify QAPISchemaIfCond's interface for generating C
Date: Tue, 31 Aug 2021 14:37:58 +0200 [thread overview]
Message-ID: <20210831123809.1107782-2-armbru@redhat.com> (raw)
In-Reply-To: <20210831123809.1107782-1-armbru@redhat.com>
QAPISchemaIfCond.cgen() is only ever used like
gen_if(ifcond.cgen())
and
gen_endif(ifcond.cgen())
Simplify to
ifcond.gen_if()
and
ifcond.gen_endif()
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
scripts/qapi/gen.py | 6 ++----
scripts/qapi/introspect.py | 6 ++----
scripts/qapi/schema.py | 10 +++++++++-
scripts/qapi/types.py | 22 ++++++++++------------
scripts/qapi/visit.py | 14 ++++++--------
5 files changed, 29 insertions(+), 29 deletions(-)
diff --git a/scripts/qapi/gen.py b/scripts/qapi/gen.py
index 51a597a025..ab26d5c937 100644
--- a/scripts/qapi/gen.py
+++ b/scripts/qapi/gen.py
@@ -24,8 +24,6 @@
from .common import (
c_fname,
c_name,
- gen_endif,
- gen_if,
guardend,
guardstart,
mcgen,
@@ -95,9 +93,9 @@ def _wrap_ifcond(ifcond: QAPISchemaIfCond, before: str, after: str) -> str:
if added[0] == '\n':
out += '\n'
added = added[1:]
- out += gen_if(ifcond.cgen())
+ out += ifcond.gen_if()
out += added
- out += gen_endif(ifcond.cgen())
+ out += ifcond.gen_endif()
return out
diff --git a/scripts/qapi/introspect.py b/scripts/qapi/introspect.py
index bd4233ecee..548bb29961 100644
--- a/scripts/qapi/introspect.py
+++ b/scripts/qapi/introspect.py
@@ -24,8 +24,6 @@
from .common import (
c_name,
- gen_endif,
- gen_if,
mcgen,
)
from .gen import QAPISchemaMonolithicCVisitor
@@ -124,10 +122,10 @@ def indent(level: int) -> str:
if obj.comment:
ret += indent(level) + f"/* {obj.comment} */\n"
if obj.ifcond.is_present():
- ret += gen_if(obj.ifcond.cgen())
+ ret += obj.ifcond.gen_if()
ret += _tree_to_qlit(obj.value, level)
if obj.ifcond.is_present():
- ret += '\n' + gen_endif(obj.ifcond.cgen())
+ ret += '\n' + obj.ifcond.gen_endif()
return ret
ret = ''
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 229d24fce9..1451cdec81 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -24,6 +24,8 @@
c_name,
cgen_ifcond,
docgen_ifcond,
+ gen_endif,
+ gen_if,
)
from .error import QAPIError, QAPISemError, QAPISourceError
from .expr import check_exprs
@@ -34,9 +36,15 @@ class QAPISchemaIfCond:
def __init__(self, ifcond=None):
self.ifcond = ifcond or {}
- def cgen(self):
+ def _cgen(self):
return cgen_ifcond(self.ifcond)
+ def gen_if(self):
+ return gen_if(self._cgen())
+
+ def gen_endif(self):
+ return gen_endif(self._cgen())
+
def docgen(self):
return docgen_ifcond(self.ifcond)
diff --git a/scripts/qapi/types.py b/scripts/qapi/types.py
index db9ff95bd1..b358dbbc8d 100644
--- a/scripts/qapi/types.py
+++ b/scripts/qapi/types.py
@@ -18,8 +18,6 @@
from .common import (
c_enum_const,
c_name,
- gen_endif,
- gen_if,
mcgen,
)
from .gen import QAPISchemaModularCVisitor, ifcontext
@@ -51,13 +49,13 @@ def gen_enum_lookup(name: str,
''',
c_name=c_name(name))
for memb in members:
- ret += gen_if(memb.ifcond.cgen())
+ ret += memb.ifcond.gen_if()
index = c_enum_const(name, memb.name, prefix)
ret += mcgen('''
[%(index)s] = "%(name)s",
''',
index=index, name=memb.name)
- ret += gen_endif(memb.ifcond.cgen())
+ ret += memb.ifcond.gen_endif()
ret += mcgen('''
},
@@ -81,12 +79,12 @@ def gen_enum(name: str,
c_name=c_name(name))
for memb in enum_members:
- ret += gen_if(memb.ifcond.cgen())
+ ret += memb.ifcond.gen_if()
ret += mcgen('''
%(c_enum)s,
''',
c_enum=c_enum_const(name, memb.name, prefix))
- ret += gen_endif(memb.ifcond.cgen())
+ ret += memb.ifcond.gen_endif()
ret += mcgen('''
} %(c_name)s;
@@ -126,7 +124,7 @@ def gen_array(name: str, element_type: QAPISchemaType) -> str:
def gen_struct_members(members: List[QAPISchemaObjectTypeMember]) -> str:
ret = ''
for memb in members:
- ret += gen_if(memb.ifcond.cgen())
+ ret += memb.ifcond.gen_if()
if memb.optional:
ret += mcgen('''
bool has_%(c_name)s;
@@ -136,7 +134,7 @@ def gen_struct_members(members: List[QAPISchemaObjectTypeMember]) -> str:
%(c_type)s %(c_name)s;
''',
c_type=memb.type.c_type(), c_name=c_name(memb.name))
- ret += gen_endif(memb.ifcond.cgen())
+ ret += memb.ifcond.gen_endif()
return ret
@@ -159,7 +157,7 @@ def gen_object(name: str, ifcond: QAPISchemaIfCond,
ret += mcgen('''
''')
- ret += gen_if(ifcond.cgen())
+ ret += ifcond.gen_if()
ret += mcgen('''
struct %(c_name)s {
''',
@@ -193,7 +191,7 @@ def gen_object(name: str, ifcond: QAPISchemaIfCond,
ret += mcgen('''
};
''')
- ret += gen_endif(ifcond.cgen())
+ ret += ifcond.gen_endif()
return ret
@@ -220,13 +218,13 @@ def gen_variants(variants: QAPISchemaVariants) -> str:
for var in variants.variants:
if var.type.name == 'q_empty':
continue
- ret += gen_if(var.ifcond.cgen())
+ ret += var.ifcond.gen_if()
ret += mcgen('''
%(c_type)s %(c_name)s;
''',
c_type=var.type.c_unboxed_type(),
c_name=c_name(var.name))
- ret += gen_endif(var.ifcond.cgen())
+ ret += var.ifcond.gen_endif()
ret += mcgen('''
} u;
diff --git a/scripts/qapi/visit.py b/scripts/qapi/visit.py
index 56ea516399..9d9196a143 100644
--- a/scripts/qapi/visit.py
+++ b/scripts/qapi/visit.py
@@ -18,8 +18,6 @@
from .common import (
c_enum_const,
c_name,
- gen_endif,
- gen_if,
indent,
mcgen,
)
@@ -79,7 +77,7 @@ def gen_visit_object_members(name: str,
for memb in members:
deprecated = 'deprecated' in [f.name for f in memb.features]
- ret += gen_if(memb.ifcond.cgen())
+ ret += memb.ifcond.gen_if()
if memb.optional:
ret += mcgen('''
if (visit_optional(v, "%(name)s", &obj->has_%(c_name)s)) {
@@ -112,7 +110,7 @@ def gen_visit_object_members(name: str,
ret += mcgen('''
}
''')
- ret += gen_endif(memb.ifcond.cgen())
+ ret += memb.ifcond.gen_endif()
if variants:
tag_member = variants.tag_member
@@ -126,7 +124,7 @@ def gen_visit_object_members(name: str,
for var in variants.variants:
case_str = c_enum_const(tag_member.type.name, var.name,
tag_member.type.prefix)
- ret += gen_if(var.ifcond.cgen())
+ ret += var.ifcond.gen_if()
if var.type.name == 'q_empty':
# valid variant and nothing to do
ret += mcgen('''
@@ -142,7 +140,7 @@ def gen_visit_object_members(name: str,
case=case_str,
c_type=var.type.c_name(), c_name=c_name(var.name))
- ret += gen_endif(var.ifcond.cgen())
+ ret += var.ifcond.gen_endif()
ret += mcgen('''
default:
abort();
@@ -228,7 +226,7 @@ def gen_visit_alternate(name: str, variants: QAPISchemaVariants) -> str:
c_name=c_name(name))
for var in variants.variants:
- ret += gen_if(var.ifcond.cgen())
+ ret += var.ifcond.gen_if()
ret += mcgen('''
case %(case)s:
''',
@@ -254,7 +252,7 @@ def gen_visit_alternate(name: str, variants: QAPISchemaVariants) -> str:
ret += mcgen('''
break;
''')
- ret += gen_endif(var.ifcond.cgen())
+ ret += var.ifcond.gen_endif()
ret += mcgen('''
case QTYPE_NONE:
--
2.31.1
next prev parent reply other threads:[~2021-08-31 13:20 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-31 12:37 [PATCH 00/12] qapi: Fixes and cleanups for recent work (mostly) Markus Armbruster
2021-08-31 12:37 ` Markus Armbruster [this message]
2021-08-31 12:37 ` [PATCH 02/12] qapi: Simplify how QAPISchemaIfCond represents "no condition" Markus Armbruster
2021-08-31 12:38 ` [PATCH 03/12] tests/qapi-schema: Correct two 'if' conditionals Markus Armbruster
2021-08-31 12:38 ` [PATCH 04/12] tests/qapi-schema: Demonstrate broken C code for 'if' Markus Armbruster
2021-08-31 12:38 ` [PATCH 05/12] qapi: Fix C code generation " Markus Armbruster
2021-08-31 12:38 ` [PATCH 06/12] qapi: Factor common recursion out of cgen_ifcond(), docgen_ifcond() Markus Armbruster
2021-08-31 12:38 ` [PATCH 07/12] qapi: Avoid redundant parens in code generated for conditionals Markus Armbruster
2021-08-31 12:38 ` [PATCH 08/12] qapi: Use "not COND" instead of "!COND" for generated documentation Markus Armbruster
2021-08-31 12:38 ` [PATCH 09/12] qapi: Use re.fullmatch() where appropriate Markus Armbruster
2021-08-31 12:38 ` [PATCH 10/12] tests/qapi-schema: Hide OrderedDict in test output Markus Armbruster
2021-08-31 12:38 ` [PATCH 11/12] qapi: Tweak error messages for missing / conflicting meta-type Markus Armbruster
2021-08-31 12:38 ` [PATCH 12/12] qapi: Tweak error messages for unknown / conflicting 'if' keys Markus Armbruster
2021-08-31 13:41 ` [PATCH 00/12] qapi: Fixes and cleanups for recent work (mostly) Marc-André Lureau
2021-08-31 14:28 ` Markus Armbruster
2021-09-15 14:50 ` John Snow
2021-09-15 15:08 ` Marc-André Lureau
2021-09-15 15:38 ` John Snow
2021-09-03 19:22 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210831123809.1107782-2-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=jsnow@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=michael.roth@amd.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.