Исправляем ошибку обхода по строке сценария

This commit is contained in:
2022-08-28 20:07:28 +03:00
parent fc521d9875
commit 16680ff513

View File

@@ -587,12 +587,15 @@ class BracketsExprAST : public ExprAST {
//===----------------------------------------------------------------------===//
char IoTScenario::getLastChar() {
char tmp = strFromFile->charAt(strIterator);
strIterator++;
return strFromFile->charAt(strIterator - 1);
return tmp;
}
/// gettok - Возвращает следующий токен из стандартного потока ввода.
int IoTScenario::gettok() {
if (strIterator == strFromFile->length()) return tok_eof;
// Пропускаем пробелы.
while (isspace(LastChar))
LastChar = getLastChar();
@@ -625,10 +628,8 @@ int IoTScenario::gettok() {
if (LastChar == '#') {
// Комментарий до конца строки
do LastChar = getLastChar();
while (LastChar != EOF && LastChar != '\n' && LastChar != '\r');
if (LastChar != EOF)
return gettok();
while (LastChar != '\n' && LastChar != '\r');
return gettok();
}
if (LastChar == '"') { // "строка"
@@ -936,14 +937,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() - 1) {
// Serial.printf("-%c", LastChar);
while (strIterator == strFromFile->length()) {
Serial.printf("-%c", LastChar);
switch (CurTok) {
// case tok_eof: return;
case tok_eof: break;
// case ';': getNextToken(); break; // игнорируем верхнеуровневые точки с запятой.
case tok_if: {
String IDNames = ""; // накопитель встречающихся идентификаторов в условии