about summary refs log tree commit diff stats
path: root/miasm2/expression/expression.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2017-02-08 10:20:03 +0100
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2017-02-12 18:03:12 +0100
commit527dc222b107e39e2da8d2d4b053db397df08fae (patch)
tree1a565c192712c8b944944329698dee4939ee333e /miasm2/expression/expression.py
parentca275b0c0a4cdbfe0033758b61f9f1484f67e884 (diff)
downloadmiasm-527dc222b107e39e2da8d2d4b053db397df08fae.tar.gz
miasm-527dc222b107e39e2da8d2d4b053db397df08fae.zip
Expression: REPLACE IS_OP_SEGM
/!\ API MODIFICATION: is_op_segm becomes is_mem_segm

is_op_segm: Returns True if is ExprOp and op == 'segm'
is_mem_segm: Returns True if is ExprMem and ptr is_op_segm
Diffstat (limited to 'miasm2/expression/expression.py')
-rw-r--r--miasm2/expression/expression.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/miasm2/expression/expression.py b/miasm2/expression/expression.py
index ef7fa1f6..e134e503 100644
--- a/miasm2/expression/expression.py
+++ b/miasm2/expression/expression.py
@@ -377,6 +377,13 @@ class Expr(object):
     def is_compose(self):
         return False
 
+    def is_op_segm(self):
+        """Returns True if is ExprOp and op == 'segm'"""
+        return False
+
+    def is_mem_segm(self):
+        """Returns True if is ExprMem and ptr is_op_segm"""
+        return False
 
 class ExprInt(Expr):
 
@@ -817,8 +824,9 @@ class ExprMem(Expr):
         arg = self.arg.copy()
         return ExprMem(arg, size=self.size)
 
-    def is_op_segm(self):
-        return isinstance(self.__arg, ExprOp) and self.__arg.op == 'segm'
+    def is_mem_segm(self):
+        """Returns True if is ExprMem and ptr is_op_segm"""
+        return self.__arg.is_op_segm()
 
     def depth(self):
         return self.__arg.depth() + 1
@@ -1002,6 +1010,10 @@ class ExprOp(Expr):
             return True
         return self.op == op
 
+    def is_op_segm(self):
+        """Returns True if is ExprOp and op == 'segm'"""
+        return self.is_op('segm')
+
 class ExprSlice(Expr):
 
     __slots__ = Expr.__slots__ + ["__arg", "__start", "__stop"]