qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH RFC v2 25/47] qapi: Make generators work on sorted s


From: Markus Armbruster
Subject: [Qemu-devel] [PATCH RFC v2 25/47] qapi: Make generators work on sorted schema expressions
Date: Wed, 1 Jul 2015 22:22:13 +0200

Order of expressions doesn't matter.  QAPISchema().get_exprs() returns
expressions in the order they're parsed.

I'm going to refactor this code.  To check refactorings, I want to
diff the generated code, and for that I need to preserve its order.

Since I don't feel like preserving parse order, I'm changing
get_expr() to return the expressions sorted by name.  This order will
be trivial to preserve.  It also makes the generated code slightly
easier to navigate.

Signed-off-by: Markus Armbruster <address@hidden>
---
 scripts/qapi.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/scripts/qapi.py b/scripts/qapi.py
index cac7ab5..20ffdaf 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -1017,7 +1017,14 @@ class QAPISchema(object):
         self.check()
 
     def get_exprs(self):
-        return [expr_elem['expr'] for expr_elem in self.exprs]
+        def expr_name(expr):
+            name = expr.get('enum') or expr.get('union') \
+                   or expr.get('alternate') or expr.get('struct') \
+                   or expr.get('command') or expr.get('event')
+            assert name
+            return name
+        return sorted([expr_elem['expr'] for expr_elem in self.exprs],
+                      key=expr_name)
 
     def _def_entity(self, ent):
         assert ent.name not in self.entity_dict
-- 
1.9.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]