mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
Merge pull request #36 from 2blSoft/ver4dev
Добавляем экранирование в строки сценария \" и \n
This commit is contained in:
@@ -707,7 +707,16 @@ int IoTScenario::gettok() {
|
|||||||
IdentifierStr = "";
|
IdentifierStr = "";
|
||||||
LastChar = getLastChar();
|
LastChar = getLastChar();
|
||||||
while (LastChar != '"' && LastChar != EOF) {
|
while (LastChar != '"' && LastChar != EOF) {
|
||||||
|
if (LastChar == '\\') { // обработка экранированных символов в строке
|
||||||
|
LastChar = getLastChar();
|
||||||
|
if (LastChar == '"') {
|
||||||
|
IdentifierStr += '"';
|
||||||
|
} else if (LastChar == 'n') {
|
||||||
|
IdentifierStr += '\n';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
IdentifierStr += (char)LastChar;
|
IdentifierStr += (char)LastChar;
|
||||||
|
}
|
||||||
LastChar = getLastChar();
|
LastChar = getLastChar();
|
||||||
}
|
}
|
||||||
LastChar = getLastChar();
|
LastChar = getLastChar();
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
"moduleName": "Scenario",
|
"moduleName": "Scenario",
|
||||||
"moduleVersion": "1.0",
|
"moduleVersion": "1.0",
|
||||||
"title": "Сценарии",
|
"title": "Сценарии",
|
||||||
"moduleDesc": "Сценарии позволяют реализовать индивидуальный алгоритм работы контроллера с учетом происходящих событий. Они представляют из себя описательный язык того, что нужно сделать при наступлении того или иного события, учитывая конкретные условия. \nВ базе языка - выражение вида: “Если условие истина, то выполнить одно действие, а если нет, то иное”. При этом проверка такого выражения будет осуществляться только при наступлении события связанного с элементом конфигурации, который упоминается в этом выражении. \nУсловием или действием может быть любое разрешенное выражение. Они все при выполнении возвращают значение. Выражение может состоять из: идентификаторов элементов конфигурации, чисел (целые, дробные и отрицательные), строк в кавычках, операций сравнения < > <= >= == !=, операций присваивания значений =, математических операций +-*/, логических операций &|, комментариев после символа #, функций (в параметрах которых так же могут быть любые разрешенные выражения), конструкции ветвления IfThenElse, группирующие блоки выражений {}",
|
"moduleDesc": "Сценарии позволяют реализовать индивидуальный алгоритм работы контроллера с учетом происходящих событий. Они представляют из себя описательный язык того, что нужно сделать при наступлении того или иного события, учитывая конкретные условия. \nВ базе языка - выражение вида: “Если условие истина, то выполнить одно действие, а если нет, то иное”. При этом проверка такого выражения будет осуществляться только при наступлении события связанного с элементом конфигурации, который упоминается в этом выражении. \nУсловием или действием может быть любое разрешенное выражение. Они все при выполнении возвращают значение. Выражение может состоять из: идентификаторов элементов конфигурации, чисел (целые, дробные и отрицательные), строк в кавычках, операций сравнения < > <= >= == !=, операций присваивания значений =, математических операций +-*/, логических операций &|, комментариев после символа #, функций (в параметрах которых так же могут быть любые разрешенные выражения), конструкции ветвления IfThenElse, группирующие блоки выражений {}, экранирование символа кавычек и переноса строки",
|
||||||
"funcInfo": [
|
"funcInfo": [
|
||||||
{
|
{
|
||||||
"name": "getIntFromNet",
|
"name": "getIntFromNet",
|
||||||
|
|||||||
Reference in New Issue
Block a user