Miasm2
 All Classes Namespaces Files Functions Variables Typedefs Properties Macros
miasm.py
Go to the documentation of this file.
1 from miasm2.ir.translators.translator import Translator
2 
3 
5  "Translate a Miasm expression to its Python building form"
6 
7  __LANG__ = "Miasm"
8 
9  def from_ExprId(self, expr):
10  return "ExprId(%s, size=%d)" % (repr(expr.name), expr.size)
11 
12  def from_ExprInt(self, expr):
13  return "ExprInt(0x%x, %d)" % (int(expr.arg), expr.size)
14 
15  def from_ExprCond(self, expr):
16  return "ExprCond(%s, %s, %s)" % (self.from_expr(expr.cond),
17  self.from_expr(expr.src1),
18  self.from_expr(expr.src2))
19 
20  def from_ExprSlice(self, expr):
21  return "ExprSlice(%s, %d, %d)" % (self.from_expr(expr.arg),
22  expr.start,
23  expr.stop)
24 
25  def from_ExprOp(self, expr):
26  return "ExprOp(%s, %s)" % (repr(expr.op),
27  ", ".join(map(self.from_expr, expr.args)))
28 
29  def from_ExprCompose(self, expr):
30  args = ["(%s, %d, %d)" % (self.from_expr(arg), start, stop)
31  for arg, start, stop in expr.args]
32  return "ExprCompose([%s])" % ", ".join(args)
33 
34  def from_ExprAff(self, expr):
35  return "ExprAff(%s, %s)" % (self.from_expr(expr.dst),
36  self.from_expr(expr.src))
37 
38  def from_ExprMem(self, expr):
39  return "ExprMem(%s, size=%d)" % (self.from_expr(expr.arg), expr.size)
40 
41 
42 # Register the class
43 Translator.register(TranslatorMiasm)