Делаем доступным исходное значение числа

в виде строки для лучшей визуализаци
This commit is contained in:
2022-09-05 16:26:27 +03:00
parent e391bee0ca
commit 90e8d4eaf4

View File

@@ -46,7 +46,10 @@ class NumberExprAST : public ExprAST {
IoTValue Val; IoTValue Val;
public: public:
NumberExprAST(float val) { Val.valD = val; } NumberExprAST(String val) {
Val.valD = strtod(val.c_str(), 0);
Val.valS = val;
}
IoTValue *exec() { IoTValue *exec() {
if (isIotScenException) return nullptr; if (isIotScenException) return nullptr;
@@ -624,7 +627,7 @@ int IoTScenario::gettok() {
return tok_identifier; return tok_identifier;
} }
String NumStr=""; NumStr="";
if (LastChar == '-') { if (LastChar == '-') {
LastChar = getLastChar(); LastChar = getLastChar();
if (isdigit(LastChar)) NumStr = "-"; if (isdigit(LastChar)) NumStr = "-";
@@ -637,7 +640,6 @@ int IoTScenario::gettok() {
LastChar = getLastChar(); LastChar = getLastChar();
} while (isdigit(LastChar) || LastChar == '.'); } while (isdigit(LastChar) || LastChar == '.');
NumVal = strtod(NumStr.c_str(), 0);
return tok_number; return tok_number;
} }
@@ -788,7 +790,7 @@ ExprAST *IoTScenario::ParseIdentifierExpr(String *IDNames, bool callFromConditio
/// numberexpr ::= number /// numberexpr ::= number
ExprAST *IoTScenario::ParseNumberExpr() { ExprAST *IoTScenario::ParseNumberExpr() {
ExprAST *Result = new NumberExprAST(NumVal); ExprAST *Result = new NumberExprAST(NumStr);
getNextToken(); // получаем число getNextToken(); // получаем число
return Result; return Result;
} }