aboutsummaryrefslogtreecommitdiff
path: root/scripts/qapi/expr.py
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2021-08-04 12:31:05 +0400
committerMarkus Armbruster <armbru@redhat.com>2021-08-26 13:53:56 +0200
commit8a9f1e1d9cc55f5eb0946cbf8fd1ef9a0e7d3dac (patch)
tree11ccd49b95bbad5e049e02d0283266dfb9f883dd /scripts/qapi/expr.py
parent2b7d2145369f2ca55ded9045393bb860ee3f6745 (diff)
downloadqemu-8a9f1e1d9cc55f5eb0946cbf8fd1ef9a0e7d3dac.zip
qemu-8a9f1e1d9cc55f5eb0946cbf8fd1ef9a0e7d3dac.tar.gz
qemu-8a9f1e1d9cc55f5eb0946cbf8fd1ef9a0e7d3dac.tar.bz2
qapi: make 'if' condition strings simple identifiers
Change the 'if' condition strings to be C-agnostic. It will accept '[A-Z][A-Z0-9_]*' identifiers. This allows to express configuration conditions in other languages (Rust or Python for ex) or other more suitable forms. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Tested-by: John Snow <jsnow@redhat.com> Message-Id: <20210804083105.97531-11-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Rebased with semantic conflict in redefined-event.json] Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'scripts/qapi/expr.py')
-rw-r--r--scripts/qapi/expr.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/scripts/qapi/expr.py b/scripts/qapi/expr.py
index 120b310..019f4c9 100644
--- a/scripts/qapi/expr.py
+++ b/scripts/qapi/expr.py
@@ -275,10 +275,10 @@ def check_if(expr: _JSONObject, info: QAPISourceInfo, source: str) -> None:
def _check_if(cond: Union[str, object]) -> None:
if isinstance(cond, str):
- if not cond.strip():
+ if not re.match(r'^[A-Z][A-Z0-9_]*$', cond):
raise QAPISemError(
info,
- "'if' condition '%s' of %s makes no sense"
+ "'if' condition '%s' of %s is not a valid identifier"
% (cond, source))
return