Miasm2
 All Classes Namespaces Files Functions Variables Typedefs Properties Macros
Public Member Functions | Public Attributes | List of all members
miasm2.ir.symbexec.symbols Class Reference
+ Collaboration diagram for miasm2.ir.symbexec.symbols:

Public Member Functions

def __init__
 
def __contains__
 
def __getitem__
 
def __setitem__
 
def __iter__
 
def __delitem__
 
def items
 
def keys
 
def copy
 
def inject_info
 

Public Attributes

 symbols_id
 
 symbols_mem
 

Detailed Description

Definition at line 15 of file symbexec.py.

Constructor & Destructor Documentation

def miasm2.ir.symbexec.symbols.__init__ (   self,
  init = None 
)

Definition at line 17 of file symbexec.py.

17 
18  def __init__(self, init=None):
19  if init is None:
20  init = {}
21  self.symbols_id = {}
22  self.symbols_mem = {}
23  for k, v in init.items():
24  self[k] = v

Member Function Documentation

def miasm2.ir.symbexec.symbols.__contains__ (   self,
  a 
)

Definition at line 25 of file symbexec.py.

25 
26  def __contains__(self, a):
27  if not isinstance(a, m2_expr.ExprMem):
28  return self.symbols_id.__contains__(a)
29  if not self.symbols_mem.__contains__(a.arg):
30  return False
31  return self.symbols_mem[a.arg][0].size == a.size
def miasm2.ir.symbexec.symbols.__delitem__ (   self,
  a 
)

Definition at line 54 of file symbexec.py.

54 
55  def __delitem__(self, a):
56  if not isinstance(a, m2_expr.ExprMem):
57  self.symbols_id.__delitem__(a)
58  else:
59  self.symbols_mem.__delitem__(a.arg)
def miasm2.ir.symbexec.symbols.__getitem__ (   self,
  a 
)

Definition at line 32 of file symbexec.py.

32 
33  def __getitem__(self, a):
34  if not isinstance(a, m2_expr.ExprMem):
35  return self.symbols_id.__getitem__(a)
36  if not a.arg in self.symbols_mem:
37  raise KeyError(a)
38  m = self.symbols_mem.__getitem__(a.arg)
39  if m[0].size != a.size:
40  raise KeyError(a)
41  return m[1]
def miasm2.ir.symbexec.symbols.__iter__ (   self)

Definition at line 48 of file symbexec.py.

48 
49  def __iter__(self):
50  for a in self.symbols_id:
51  yield a
52  for a in self.symbols_mem:
53  yield self.symbols_mem[a][0]
def miasm2.ir.symbexec.symbols.__setitem__ (   self,
  a,
  v 
)

Definition at line 42 of file symbexec.py.

42 
43  def __setitem__(self, a, v):
44  if not isinstance(a, m2_expr.ExprMem):
45  self.symbols_id.__setitem__(a, v)
46  return
47  self.symbols_mem.__setitem__(a.arg, (a, v))
def miasm2.ir.symbexec.symbols.copy (   self)

Definition at line 68 of file symbexec.py.

68 
69  def copy(self):
70  p = symbols()
71  p.symbols_id = dict(self.symbols_id)
72  p.symbols_mem = dict(self.symbols_mem)
73  return p
def miasm2.ir.symbexec.symbols.inject_info (   self,
  info 
)

Definition at line 74 of file symbexec.py.

74 
75  def inject_info(self, info):
76  s = symbols()
77  for k, v in self.items():
78  k = expr_simp(k.replace_expr(info))
79  v = expr_simp(v.replace_expr(info))
80  s[k] = v
81  return s
82 

+ Here is the call graph for this function:

def miasm2.ir.symbexec.symbols.items (   self)

Definition at line 60 of file symbexec.py.

60 
61  def items(self):
62  k = self.symbols_id.items() + [x for x in self.symbols_mem.values()]
63  return k

+ Here is the caller graph for this function:

def miasm2.ir.symbexec.symbols.keys (   self)

Definition at line 64 of file symbexec.py.

64 
65  def keys(self):
66  k = self.symbols_id.keys() + [x[0] for x in self.symbols_mem.values()]
67  return k

Member Data Documentation

miasm2.ir.symbexec.symbols.symbols_id

Definition at line 20 of file symbexec.py.

miasm2.ir.symbexec.symbols.symbols_mem

Definition at line 21 of file symbexec.py.


The documentation for this class was generated from the following file: