From 4ce71dfcfdfe9bd85937444d9a4af8d14cf08cb8 Mon Sep 17 00:00:00 2001 From: biver Date: Tue, 31 May 2022 22:35:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D1=8F=D0=BB?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BE=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D1=8E?= =?UTF-8?q?=20=D1=81=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=BA=20=D0=B2=20=D1=81=D1=86=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/classes/IoTScenario.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/classes/IoTScenario.cpp b/src/classes/IoTScenario.cpp index d19a0d27..fb41ff30 100644 --- a/src/classes/IoTScenario.cpp +++ b/src/classes/IoTScenario.cpp @@ -100,6 +100,7 @@ class BinaryExprAST : public ExprAST { signed char Op; ExprAST *LHS, *RHS; IoTValue val; + String lhsStr, rhsStr; public: BinaryExprAST(signed char op, ExprAST *lhs, ExprAST *rhs) @@ -182,10 +183,18 @@ public: return &val; } - if (!lhs->isDecimal && !rhs->isDecimal) { + if (!lhs->isDecimal || !rhs->isDecimal) { + if (lhs->isDecimal) lhsStr = lhs->valD; else lhsStr = lhs->valS; + if (rhs->isDecimal) rhsStr = rhs->valD; else rhsStr = rhs->valS; switch (Op) { case tok_equal: - val.valD = compStr(lhs->valS, rhs->valS); + val.valD = compStr(lhsStr, rhsStr); + break; + + case '+': + val.valS = lhsStr + rhsStr; + val.valD = 1; + val.isDecimal = false; break; default: @@ -194,7 +203,7 @@ public: return &val; } } - return nullptr; + return &val; } bool compStr(String str1, String str2){