diff options
| author | Camille Mougey <commial@gmail.com> | 2016-11-07 12:24:51 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-11-07 12:24:51 +0100 |
| commit | 3af8c4a5a6668cc89a4df3fb66222f4147a896b9 (patch) | |
| tree | 21a7d7ad5d6da120e8e23e0b92725073d4d4e27c /miasm2/core/sembuilder.py | |
| parent | a15e0faca425c6e2591448e510bf14f1c3f04e14 (diff) | |
| parent | f0fbc59a663774dc4f4861308bee3f91ccd9746d (diff) | |
| download | miasm-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.py | 17 |
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) |