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