From f84cfd80de865f62fbdf47e6b719bddd32455b1c Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Mon, 25 Mar 2019 14:54:52 +0100
Subject: [PATCH] Update on intexpr parsing after Florian patch

---
 src/main/java/avatartranslator/AvatarTuple.java        |  5 +++--
 .../AvatarIntegerExprParsingAndEvaluationTests.java    | 10 ++++++----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/main/java/avatartranslator/AvatarTuple.java b/src/main/java/avatartranslator/AvatarTuple.java
index dd5e4cad31..cf4605a160 100644
--- a/src/main/java/avatartranslator/AvatarTuple.java
+++ b/src/main/java/avatartranslator/AvatarTuple.java
@@ -60,11 +60,12 @@ public class AvatarTuple extends AvatarLeftHand {
 
     public static AvatarTuple createFromString (AvatarStateMachineOwner block, String toParse) {
         AvatarTuple result = null;
+        toParse = toParse.trim();
 
-        if (toParse.trim().startsWith("(")) {
+        if (toParse.startsWith("(")) {
             int indexLParen = toParse.indexOf ("(");
             int indexRParen = AvatarGuard.getMatchingRParen (toParse, indexLParen);
-            if (indexRParen < 0)
+            if (indexRParen != toParse.length () - 1)
                 return null;
             String[] components = toParse.substring (indexLParen+1, indexRParen).trim().split (",");
             boolean illFormed = false;
diff --git a/ttool/src/test/java/avatartranslator/AvatarIntegerExprParsingAndEvaluationTests.java b/ttool/src/test/java/avatartranslator/AvatarIntegerExprParsingAndEvaluationTests.java
index a417e569a0..044d3360f5 100644
--- a/ttool/src/test/java/avatartranslator/AvatarIntegerExprParsingAndEvaluationTests.java
+++ b/ttool/src/test/java/avatartranslator/AvatarIntegerExprParsingAndEvaluationTests.java
@@ -129,13 +129,15 @@ public class AvatarIntegerExprParsingAndEvaluationTests {
 
         testExpr("x = x + x*(y+z)*(x - z)", 570, true);
 
-        //testExpr("x = (x + y)*z", 30, true);
+        testExpr("x = (x + y)*z", 30, true);
 
-        //testExpr("x = (x + y)*z + (x+z)/z", 36, true);
+        testExpr("x = (x + y)*z + (x+z)/z", 36, true);
+
+        testExpr("x  = x*((x + y)*z + (x+z)/z)", 360, true);
+
+        testExpr("x  = x*((x + y)*z + (x+z)/z)/x", 36, true);
 
 
-        /*res= AvatarGuard.createFromString(A, "else");
-        assertTrue(res instanceof AvatarGuardElse);*/
     }
 
 
-- 
GitLab