From 3e5f86c2993c70696fc11a0821ae7a9f160f5cbc Mon Sep 17 00:00:00 2001
From: apvrille <ludovic.apvrille@eurecom.fr>
Date: Tue, 9 May 2017 16:34:35 +0200
Subject: [PATCH] Update on Testing int expr

---
 src/Test.java                           | 5 +++++
 src/myutil/BoolExpressionEvaluator.java | 9 ++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/Test.java b/src/Test.java
index 9d61fdb80f..c668003b3c 100755
--- a/src/Test.java
+++ b/src/Test.java
@@ -113,6 +113,11 @@ public class Test  {
 	nbOfPb += evalBoolInt("2*3==6", true, false);
 	nbOfPb += evalBoolInt("1*4+2==6", true, false);
 	nbOfPb += evalBoolInt("2+1*4==6", true, false);
+	
+	nbOfPb += evalBoolInt("2+4/1==6", true, false);
+	nbOfPb += evalBoolInt("8-4/2==6", true, false);
+	nbOfPb += evalBoolInt("not(1==1)", false, false);
+	
 	//nbOfPb += evalBoolInt("1+2==3", true, false);
     	
     	System.out.println("Nb of problems found:" + nbOfPb);
diff --git a/src/myutil/BoolExpressionEvaluator.java b/src/myutil/BoolExpressionEvaluator.java
index d440977e1e..396051d960 100755
--- a/src/myutil/BoolExpressionEvaluator.java
+++ b/src/myutil/BoolExpressionEvaluator.java
@@ -410,6 +410,7 @@ public class BoolExpressionEvaluator {
             }
 
             if (op == DIV_TOKEN) {
+		//TraceManager.addDev("Div token .. elt1 = " + elt1 + " elt2 = " + elt2 + " res=" +  new Integer(elt1 / elt2).intValue());		
                 return new Integer(elt1 / elt2);
             }
 
@@ -448,8 +449,8 @@ public class BoolExpressionEvaluator {
                     TraceManager.addDev("Found binary int expr in null");
                     return null;
                 }
-                Object ob1 = right.computeValue();
-                Object ob2 = left.computeValue();
+                Object ob1 = left.computeValue();
+                Object ob2 = right.computeValue();
                 if ((ob1 == null) || (ob2 == null)) {
                     TraceManager.addDev("Found binary int expr in null elt");
                     return null;
@@ -1526,6 +1527,7 @@ public class BoolExpressionEvaluator {
             errorMessage = "Not a boolean expression because it contains \"=\" operators";
             return false;
         }
+	_expr = Conversion.replaceAllString(_expr, "not", "!").trim();
         _expr = Conversion.replaceAllString(_expr, "true", "t").trim();
         _expr = Conversion.replaceAllString(_expr, "false", "f").trim();
         _expr = Conversion.replaceAllString(_expr, "||", "|").trim();
@@ -1696,7 +1698,6 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-
         // BOOL BINARY OP
         if (c1 == '=') {
             newElt = current.addBinaryOperator(EQUAL_TOKEN);
@@ -1718,7 +1719,6 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-
         if (c1 == ')') {
             // Must find corresponding parenthesis
             // Looking for father of the correspoing parenthesis;
@@ -1733,7 +1733,6 @@ public class BoolExpressionEvaluator {
                 return null;
             }
             return father.father;
-
         }
 
 
-- 
GitLab