diff options
Diffstat (limited to 'miasm2/ir/translators/python.py')
| -rw-r--r-- | miasm2/ir/translators/python.py | 46 |
1 files changed, 31 insertions, 15 deletions
diff --git a/miasm2/ir/translators/python.py b/miasm2/ir/translators/python.py index f32e4585..4b1b4b52 100644 --- a/miasm2/ir/translators/python.py +++ b/miasm2/ir/translators/python.py @@ -1,3 +1,4 @@ +from builtins import map from miasm2.expression.expression import ExprInt from miasm2.ir.translators.translator import Translator @@ -24,8 +25,10 @@ class TranslatorPython(Translator): return str(expr) def from_ExprMem(self, expr): - return "memory(%s, 0x%x)" % (self.from_expr(expr.ptr), - expr.size / 8) + return "memory(%s, 0x%x)" % ( + self.from_expr(expr.ptr), + expr.size // 8 + ) def from_ExprSlice(self, expr): out = self.from_expr(expr.arg) @@ -36,26 +39,36 @@ class TranslatorPython(Translator): def from_ExprCompose(self, expr): out = [] for index, arg in expr.iter_args(): - out.append("((%s & 0x%x) << %d)" % (self.from_expr(arg), - (1 << arg.size) - 1, - index)) + out.append( + "((%s & 0x%x) << %d)" % ( + self.from_expr(arg), + (1 << arg.size) - 1, + index + ) + ) return "(%s)" % ' | '.join(out) def from_ExprCond(self, expr): - return "(%s if (%s) else %s)" % (self.from_expr(expr.src1), - self.from_expr(expr.cond), - self.from_expr(expr.src2)) + return "(%s if (%s) else %s)" % ( + self.from_expr(expr.src1), + self.from_expr(expr.cond), + self.from_expr(expr.src2) + ) def from_ExprOp(self, expr): if expr.op in self.op_no_translate: - args = map(self.from_expr, expr.args) + args = list(map(self.from_expr, expr.args)) if len(expr.args) == 1: - return "((%s %s) & 0x%x)" % (expr.op, - args[0], - (1 << expr.size) - 1) + return "((%s %s) & 0x%x)" % ( + expr.op, + args[0], + (1 << expr.size) - 1 + ) else: - return "((%s) & 0x%x)" % ((" %s " % expr.op).join(args), - (1 << expr.size) - 1) + return "((%s) & 0x%x)" % ( + (" %s " % expr.op).join(args), + (1 << expr.size) - 1 + ) elif expr.op == "parity": return "(%s & 0x1)" % self.from_expr(expr.args[0]) @@ -75,7 +88,10 @@ class TranslatorPython(Translator): raise NotImplementedError("Unknown operator: %s" % expr.op) def from_ExprAssign(self, expr): - return "%s = %s" % tuple(map(self.from_expr, (expr.dst, expr.src))) + return "%s = %s" % ( + self.from_expr(expr.dst), + self.from_expr(expr.src) + ) # Register the class |