diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2020-04-03 10:16:25 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2020-04-03 11:56:59 +0200 |
| commit | 95b24655c797f5b4f96c8834ad6ef2f21748699c (patch) | |
| tree | a1983268549523fcc94376ee53ebfa4cb2c42f42 /miasm/expression/expression.py | |
| parent | 1d5127036dc7e1688c102c5781a6618b5dd27f16 (diff) | |
| download | focaccia-miasm-95b24655c797f5b4f96c8834ad6ef2f21748699c.tar.gz focaccia-miasm-95b24655c797f5b4f96c8834ad6ef2f21748699c.zip | |
Use int(expr) instead of expr.arg.arg
Diffstat (limited to 'miasm/expression/expression.py')
| -rw-r--r-- | miasm/expression/expression.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/miasm/expression/expression.py b/miasm/expression/expression.py index 9ac631fa..d6813cec 100644 --- a/miasm/expression/expression.py +++ b/miasm/expression/expression.py @@ -140,6 +140,32 @@ class DiGraphExpr(DiGraph): return "" +def is_expr(expr): + return isinstance( + expr, + ( + ExprInt, ExprId, ExprMem, + ExprSlice, ExprCompose, ExprCond, + ExprLoc, ExprOp + ) + ) + +def is_associative(expr): + "Return True iff current operation is associative" + return (expr.op in ['+', '*', '^', '&', '|']) + +def is_commutative(expr): + "Return True iff current operation is commutative" + return (expr.op in ['+', '*', '^', '&', '|']) + +def is_op_segm(expr): + """Returns True if is ExprOp and op == 'segm'""" + return expr.is_op('segm') + +def is_mem_segm(expr): + """Returns True if is ExprMem and ptr is_op_segm""" + return expr.is_mem() and is_op_segm(expr.ptr) + @total_ordering class LocKey(object): |