mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 11:59:12 +03:00
Оптимизируем работу со строками через параметры функции
This commit is contained in:
@@ -8,7 +8,7 @@ class ExprAST {
|
|||||||
virtual ~ExprAST();
|
virtual ~ExprAST();
|
||||||
virtual IoTValue *exec();
|
virtual IoTValue *exec();
|
||||||
virtual int setValue(IoTValue *val, bool generateEvent); // ret 0 - установка значения не поддерживается наследником
|
virtual int setValue(IoTValue *val, bool generateEvent); // ret 0 - установка значения не поддерживается наследником
|
||||||
virtual bool hasEventIdName(String eventIdName);
|
virtual bool hasEventIdName(const String& eventIdName);
|
||||||
};
|
};
|
||||||
|
|
||||||
class IoTScenario {
|
class IoTScenario {
|
||||||
@@ -93,7 +93,7 @@ class IoTScenario {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
void loadScenario(String fileName);
|
void loadScenario(String fileName);
|
||||||
void exec(String eventIdName);
|
void exec(const String& eventIdName);
|
||||||
|
|
||||||
IoTScenario();
|
IoTScenario();
|
||||||
~IoTScenario();
|
~IoTScenario();
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ enum Token {
|
|||||||
ExprAST::~ExprAST() {}
|
ExprAST::~ExprAST() {}
|
||||||
IoTValue *ExprAST::exec() { return nullptr; }
|
IoTValue *ExprAST::exec() { return nullptr; }
|
||||||
int ExprAST::setValue(IoTValue *val, bool generateEvent) { return 0; } // 0 - установка значения не поддерживается наследником
|
int ExprAST::setValue(IoTValue *val, bool generateEvent) { return 0; } // 0 - установка значения не поддерживается наследником
|
||||||
bool ExprAST::hasEventIdName(String eventIdName) { return false; } // по умолчанию все узлы не связаны с ИД события, для которого выполняется сценарий
|
bool ExprAST::hasEventIdName(const String& eventIdName) { return false; } // по умолчанию все узлы не связаны с ИД события, для которого выполняется сценарий
|
||||||
// struct IoTValue zeroIotVal;
|
// struct IoTValue zeroIotVal;
|
||||||
|
|
||||||
/// NumberExprAST - Класс узла выражения для числовых литералов (Например, "1.0").
|
/// NumberExprAST - Класс узла выражения для числовых литералов (Например, "1.0").
|
||||||
@@ -543,7 +543,7 @@ class IfExprAST : public ExprAST {
|
|||||||
_IDNames = "";
|
_IDNames = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hasEventIdName(String eventIdName) {
|
bool hasEventIdName(const String& eventIdName) {
|
||||||
// Serial.printf("Call from BinaryExprAST _IDNames:%s\n", _IDNames.c_str());
|
// Serial.printf("Call from BinaryExprAST _IDNames:%s\n", _IDNames.c_str());
|
||||||
return _IDNames.indexOf(" " + eventIdName + " ") >= 0; // определяем встречался ли ИД, для которого исполняем сценарий в выражении IF
|
return _IDNames.indexOf(" " + eventIdName + " ") >= 0; // определяем встречался ли ИД, для которого исполняем сценарий в выражении IF
|
||||||
}
|
}
|
||||||
@@ -1026,7 +1026,7 @@ void IoTScenario::loadScenario(String fileName) { // подготавливае
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IoTScenario::exec(String eventIdName) { // посимвольно считываем и сразу интерпретируем сценарий в дерево AST
|
void IoTScenario::exec(const String& eventIdName) { // посимвольно считываем и сразу интерпретируем сценарий в дерево AST
|
||||||
if (mode == 0 && !file) return;
|
if (mode == 0 && !file) return;
|
||||||
|
|
||||||
LastChar = 0;
|
LastChar = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user