about summary refs log tree commit diff stats
path: root/example/expression/manip_expression6.py
diff options
context:
space:
mode:
Diffstat (limited to 'example/expression/manip_expression6.py')
-rw-r--r--example/expression/manip_expression6.py138
1 files changed, 0 insertions, 138 deletions
diff --git a/example/expression/manip_expression6.py b/example/expression/manip_expression6.py
deleted file mode 100644
index 7e32da4b..00000000
--- a/example/expression/manip_expression6.py
+++ /dev/null
@@ -1,138 +0,0 @@
-from miasm.expression.expression import *
-from miasm.expression.expression_helper import *
-import os
-
-filename = os.environ.get('PYTHONSTARTUP')
-if filename and os.path.isfile(filename):
-    execfile(filename)
-
-a = ExprId('a')
-b = ExprId('b')
-c = ExprId('c')
-d = ExprId('d')
-
-
-x = ExprMem(a+b+ExprInt32(0x42))
-
-def replace_expr(e):
-    #print 'visit', e
-    dct = {c+ExprInt32(0x42):d,
-           a+b:c,}
-    if e in dct:
-        return dct[e]
-    return e
-
-
-print x
-y = x.visit(replace_expr)
-print y
-print x.copy()
-print y.copy()
-print y == y.copy()
-print repr(y), repr(y.copy())
-
-
-z = ExprCompose([(a[5:9], 0, 8), (b, 8, 24), (x, 24, 32)])
-print z
-print z.copy()
-print z[:31].copy().visit(replace_expr)
-
-print 'replace'
-print x.replace_expr({c+ExprInt32(0x42):d,
-                      a+b:c,})
-print z.replace_expr({c+ExprInt32(0x42):d,
-                      a+b:c,})
-
-
-u = z.copy()
-print u
-u.args[-1][0].arg.args[1].arg = uint32(0x45)
-print u
-print z
-print u == z
-
-to_test = [(ExprInt32(1)-ExprInt32(1), ExprInt32(0)),
-           ((ExprInt32(5)+c+a+b-a+ExprInt32(1)-ExprInt32(5)),b+c+ExprInt32(1)),
-           (a+b+c-a-b-c+a,a),
-           (a+a+b+c-(a+(b+c)),a),
-           (c^b^a^c^b,a),
-           (a^ExprInt32(0),a),
-           ((a+b)-b,a),
-           (-(ExprInt32(0)-((a+b)-b)),a),
-
-           (ExprOp('<<<', a, ExprInt32(32)),a),
-           (ExprOp('>>>', a, ExprInt32(32)),a),
-           (ExprOp('>>>', a, ExprInt32(0)),a),
-           (ExprOp('<<', a, ExprInt32(0)),a),
-
-           (ExprOp('<<<', a, ExprOp('<<<', b, c)),
-            ExprOp('<<<', a, ExprOp('<<<', b, c))),
-           (ExprOp('<<<', ExprOp('<<<', a, b), c),
-            ExprOp('<<<', ExprOp('<<<', a, b), c)),
-           (ExprOp('<<<', ExprOp('>>>', a, b), c),
-            ExprOp('<<<', ExprOp('>>>', a, b), c)),
-           (ExprOp('>>>', ExprOp('<<<', a, b), c),
-            ExprOp('>>>', ExprOp('<<<', a, b), c)),
-           (ExprOp('>>>', ExprOp('<<<', a, b), b),
-            ExprOp('>>>', ExprOp('<<<', a, b), b)),
-
-
-           (ExprOp('>>>', ExprOp('<<<', a, ExprInt32(10)), ExprInt32(2)),
-            ExprOp('<<<', a, ExprInt32(8))),
-
-           (ExprOp('>>>', ExprOp('<<<', a, ExprInt32(10)), ExprInt32(2)) ^ ExprOp('>>>', ExprOp('<<<', a, ExprInt32(10)), ExprInt32(2)),
-            ExprInt32(0)),
-           (ExprOp(">>", (a & ExprInt32(0xF)), ExprInt32(0x15)),
-            ExprInt32(0)),
-           (ExprOp("==", ExprInt32(12), ExprInt32(10)), ExprInt32(0)),
-           (ExprOp("==", ExprInt32(12), ExprInt32(12)), ExprInt32(1)),
-           (ExprOp("==", a|ExprInt32(12), ExprInt32(0)),ExprInt32(0)),
-           (ExprOp("==", a|ExprInt32(12), ExprInt32(14)),
-            ExprOp("==", a|ExprInt32(12), ExprInt32(14))),
-           (ExprOp("parity", ExprInt32(0xf)), ExprInt32(1)),
-           (ExprOp("parity", ExprInt32(0xe)), ExprInt32(0)),
-           (ExprInt32(0x4142)[:32],ExprInt32(0x4142)),
-           (ExprInt32(0x4142)[:8],ExprInt8(0x42)),
-           (ExprInt32(0x4142)[8:16],ExprInt8(0x41)),
-           (a[:32], a),
-           (a[:8][:8],a[:8]),
-           (a[:16][:8],a[:8]),
-           (a[8:16][:8],a[8:16]),
-           (a[8:32][:8],a[8:16]),
-           (a[:16][8:16],a[8:16]),
-           (ExprCompose([(a, 0, 32)]),a),
-           (ExprCompose([(a[:16], 0, 16)]), a[:16]),
-           (ExprCompose([(a[:16], 0, 16), (a, 16, 32)]),
-            ExprCompose([(a[:16], 0, 16), (a, 16, 32)]),),
-           (ExprCompose([(a[:16], 0, 16), (a[16:32], 16, 32)]), a),
-
-           (ExprMem(a)[:32], ExprMem(a)),
-           (ExprMem(a)[:16], ExprMem(a, size=16)),
-
-           (ExprCond(ExprInt32(1), a, b), a),
-           (ExprCond(ExprInt32(0), b, a), a),
-
-           (ExprInt32(0x80000000)[31:32], ExprInt32(1)),
-           (ExprCompose([(ExprInt16(0x1337)[:8], 0, 8),(ExprInt16(0x1337)[8:16], 8, 16)]),
-            ExprInt16(0x1337)),
-
-           (ExprCompose([(ExprInt32(0x1337beef)[8:16], 8, 16),
-                        (ExprInt32(0x1337beef)[:8], 0, 8),
-                        (ExprInt32(0x1337beef)[16:32], 16, 32)]),
-            ExprInt32(0x1337BEEF)),
-
-
-           ]
-
-
-for e, e_check in to_test[:]:
-    #
-    print "#"*80
-    e_check = expr_simp(e_check)
-    print "#"*80
-    print str(e), str(e_check)
-    e_new = expr_simp(e)
-    print "orig", str(e), "new", str(e_new), "check", str(e_check)
-    rez = e_new == e_check
-    if not rez:
-        fdsfds