From 12d1ed2dee00a27ccc82e947abf77ee029db20b7 Mon Sep 17 00:00:00 2001 From: Ilya Belyakov Date: Sun, 28 Aug 2022 20:33:43 +0300 Subject: [PATCH] =?UTF-8?q?Revert=20"=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D1=8F=D0=B5=D0=BC=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83?= =?UTF-8?q?=20=D0=BE=D0=B1=D1=85=D0=BE=D0=B4=D0=B0=20=D0=BF=D0=BE=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=BA=D0=B5=20=D1=81=D1=86=D0=B5=D0=BD=D0=B0?= =?UTF-8?q?=D1=80=D0=B8=D1=8F"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/classes/IoTScenario.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/classes/IoTScenario.cpp b/src/classes/IoTScenario.cpp index 06fe4cb3..700fc3da 100644 --- a/src/classes/IoTScenario.cpp +++ b/src/classes/IoTScenario.cpp @@ -587,15 +587,12 @@ class BracketsExprAST : public ExprAST { //===----------------------------------------------------------------------===// char IoTScenario::getLastChar() { - char tmp = strFromFile->charAt(strIterator); strIterator++; - return tmp; + return strFromFile->charAt(strIterator - 1); } /// gettok - Возвращает следующий токен из стандартного потока ввода. int IoTScenario::gettok() { - if (strIterator == strFromFile->length()) return tok_eof; - // Пропускаем пробелы. while (isspace(LastChar)) LastChar = getLastChar(); @@ -628,8 +625,10 @@ int IoTScenario::gettok() { if (LastChar == '#') { // Комментарий до конца строки do LastChar = getLastChar(); - while (LastChar != '\n' && LastChar != '\r'); - return gettok(); + while (LastChar != EOF && LastChar != '\n' && LastChar != '\r'); + + if (LastChar != EOF) + return gettok(); } if (LastChar == '"') { // "строка" @@ -937,14 +936,14 @@ void IoTScenario::loadScenario(String fileName) { // посимвольно с jsonRead(strFromF, "scen", *strFromFile, true); myfile.close(); - //Serial.println(*strFromFile); + // Serial.println(*strFromFile); if (strFromFile->length()) { getNextToken(); - while (strIterator == strFromFile->length()) { - Serial.printf("-%c", LastChar); + while (strIterator < strFromFile->length() - 1) { + // Serial.printf("-%c", LastChar); switch (CurTok) { - case tok_eof: break; + // case tok_eof: return; // case ';': getNextToken(); break; // игнорируем верхнеуровневые точки с запятой. case tok_if: { String IDNames = ""; // накопитель встречающихся идентификаторов в условии