about summary refs log tree commit diff stats
path: root/miasm2/core/sembuilder.py
diff options
context:
space:
mode:
authorCamille Mougey <commial@gmail.com>2016-11-07 12:24:51 +0100
committerGitHub <noreply@github.com>2016-11-07 12:24:51 +0100
commit3af8c4a5a6668cc89a4df3fb66222f4147a896b9 (patch)
tree21a7d7ad5d6da120e8e23e0b92725073d4d4e27c /miasm2/core/sembuilder.py
parenta15e0faca425c6e2591448e510bf14f1c3f04e14 (diff)
parentf0fbc59a663774dc4f4861308bee3f91ccd9746d (diff)
downloadmiasm-3af8c4a5a6668cc89a4df3fb66222f4147a896b9.tar.gz
miasm-3af8c4a5a6668cc89a4df3fb66222f4147a896b9.zip
Merge pull request #445 from serpilliere/symb_exec_clean
Symb exec clean
Diffstat (limited to 'miasm2/core/sembuilder.py')
-rw-r--r--miasm2/core/sembuilder.py17
1 files changed, 3 insertions, 14 deletions
diff --git a/miasm2/core/sembuilder.py b/miasm2/core/sembuilder.py
index ce327ce1..6ff390bb 100644
--- a/miasm2/core/sembuilder.py
+++ b/miasm2/core/sembuilder.py
@@ -16,7 +16,7 @@ class MiasmTransformer(ast.NodeTransformer):
     X if Y else Z -> ExprCond(Y, X, Z)
     'X'(Y)        -> ExprOp('X', Y)
     ('X' % Y)(Z)  -> ExprOp('X' % Y, Z)
-    {a, b}        -> ExprCompose([a, 0, a.size], [b, a.size, a.size + b.size])
+    {a, b}        -> ExprCompose(((a, 0, a.size), (b, a.size, a.size + b.size)))
     """
 
     # Parsers
@@ -95,27 +95,16 @@ class MiasmTransformer(ast.NodeTransformer):
         return call
 
     def visit_Set(self, node):
-        "{a, b} -> ExprCompose([a, 0, a.size], [b, a.size, a.size + b.size])"
+        "{a, b} -> ExprCompose(a, b)"
         if len(node.elts) == 0:
             return node
 
         # Recursive visit
         node = self.generic_visit(node)
 
-        new_elts = []
-        index = ast.Num(n=0)
-        for elt in node.elts:
-            new_index = ast.BinOp(op=ast.Add(), left=index,
-                                  right=ast.Attribute(value=elt,
-                                                      attr='size',
-                                                      ctx=ast.Load()))
-            new_elts.append(ast.List(elts=[elt, index, new_index],
-                                     ctx=ast.Load()))
-            index = new_index
         return ast.Call(func=ast.Name(id='ExprCompose',
                                       ctx=ast.Load()),
-                               args=[ast.List(elts=new_elts,
-                                              ctx=ast.Load())],
+                               args=node.elts,
                                keywords=[],
                                starargs=None,
                                kwargs=None)