mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
Добавялем операцию сложения строк в сценарии
This commit is contained in:
@@ -100,6 +100,7 @@ class BinaryExprAST : public ExprAST {
|
|||||||
signed char Op;
|
signed char Op;
|
||||||
ExprAST *LHS, *RHS;
|
ExprAST *LHS, *RHS;
|
||||||
IoTValue val;
|
IoTValue val;
|
||||||
|
String lhsStr, rhsStr;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
BinaryExprAST(signed char op, ExprAST *lhs, ExprAST *rhs)
|
BinaryExprAST(signed char op, ExprAST *lhs, ExprAST *rhs)
|
||||||
@@ -182,10 +183,18 @@ public:
|
|||||||
return &val;
|
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) {
|
switch (Op) {
|
||||||
case tok_equal:
|
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;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -194,7 +203,7 @@ public:
|
|||||||
return &val;
|
return &val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nullptr;
|
return &val;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool compStr(String str1, String str2){
|
bool compStr(String str1, String str2){
|
||||||
|
|||||||
Reference in New Issue
Block a user