about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCamille Mougey <camille.mougey@cea.fr>2014-12-16 17:48:18 +0100
committerCamille Mougey <camille.mougey@cea.fr>2014-12-16 17:48:18 +0100
commitc0b195dfb818950cafe54bc9f8e1b5ed7559409c (patch)
tree23dd56e79f39f049bcab241bc4e554dd4c041d2a
parentdf0738328cbab62fd9c27a451079de6a73ef914e (diff)
downloadmiasm-c0b195dfb818950cafe54bc9f8e1b5ed7559409c.tar.gz
miasm-c0b195dfb818950cafe54bc9f8e1b5ed7559409c.zip
Example: Update expr_translate to use Miasm translator and take in account #23
-rw-r--r--example/expression/expr_translate.py25
1 files changed, 13 insertions, 12 deletions
diff --git a/example/expression/expr_translate.py b/example/expression/expr_translate.py
index 17663cd2..aacb30c0 100644
--- a/example/expression/expr_translate.py
+++ b/example/expression/expr_translate.py
@@ -1,6 +1,6 @@
 import random
 
-from miasm2.expression.expression import ExprId
+from miasm2.expression.expression import *
 from miasm2.expression.expression_helper import ExprRandom
 from miasm2.ir.translators import Translator
 
@@ -15,17 +15,14 @@ class ExprRandom_OpSubRange(ExprRandom):
 print "[+] Compute a random expression:"
 expr = ExprRandom_OpSubRange.get(depth=8)
 print "-> %s" % expr
-print ""
+print
 
-print "[+] Translate in Python:"
-exprPython = Translator.to_language("Python").from_expr(expr)
-print exprPython
-print ""
-
-print "[+] Translate in C:"
-exprC = Translator.to_language("C").from_expr(expr)
-print exprC
-print ""
+target_exprs = {lang:Translator.to_language(lang).from_expr(expr)
+                for lang in Translator.available_languages()}
+for target_lang, target_expr in target_exprs.iteritems():
+    print "[+] Translate in %s:" % target_lang
+    print target_expr
+    print
 
 print "[+] Eval in Python:"
 def memory(addr, size):
@@ -39,4 +36,8 @@ for expr_id in expr.get_r(mem_read=True):
         print "Declare var: %s = 0x%x" % (expr_id.name, value)
         globals()[expr_id.name] = value
 
-print "-> 0x%x" % eval(exprPython)
+print "-> 0x%x" % eval(target_exprs["Python"])
+
+print "[+] Validate the Miasm syntax rebuilding"
+exprRebuild = eval(target_exprs["Miasm"])
+assert(expr == exprRebuild)