Что нового

[Баг] 3.3.8.0: Ошибка проверки синтаксиса при использований ContinueLoop

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
Пример из справки, с закоментированной строчкой MsgBox:

Код:
;Print all numbers from 1 to 10 except number 7
For $i = 1 To 10
    If $i = 7 Then ContinueLoop
    ;MsgBox(0, "The value of $i is:", $i)
Next


Обратите внимание, если строчку не комментировать, то проверка синтаксиса проходит :scratch:
 

asdf8

Скриптер
Сообщения
564
Репутация
152
У меня проверку синтаксиса проходит нормально (AU3Check 1.54.22.0), а при запуске сам AutoIt вываливается с ошибкой :

Код:
"ContinueLoop" statement with no matching "While", "Do" or "For" statement.
 

C2H5OH

AutoIT Гуру
Сообщения
1 473
Репутация
333
CreatoR,
с закоментированной строчкой по идее в коде должен сгенериться переход с нулевым смещением.

Код:
label: ...
       ...
       jmp 00
       loop label
Это очень круто что AutoIt отлавливает такую бессмыслицу! Я прям в восторге!
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 575
Репутация
335
C2H5OH [?]
с закоментированной строчкой по идее в коде должен сгенериться переход с нулевым смещением.
Нет. Он должен пропустить данный круг цикла и перейти к следующему - чего не происходит. Это далеко не аналог cmd команды.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
CreatoR,
А так вроде не ругается (XP).
Код:
For $i = 1 To 10
	If $i = 7 Then
		ContinueLoop
	EndIf
	;MsgBox(0, "The value of $i is:", $i)
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Autoit 3.3.8.0
У меня всё работает корректно. Проверка синтаксиса тоже проходит корректно, как с закомментированной строкой, так и с раскомментированной. При $i = 7 цикл переходит на начало, пропуская круг.


Добавлено:
Сообщение автоматически объединено:

CreatoR [?]
Обратите внимание, если строчку не комментировать, то проверка синтаксиса проходит
IMHO синтаксис не нарушен :blink:
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
asdf8 [?]
У меня проверку синтаксиса проходит нормально
Ну я имел в виду при запуске.

Garrett [?]
У меня всё работает корректно
Как ты проверяешь?
А если скомпилировать скрипт?

IMHO синтаксис не нарушен
А я разве писал что нарушен? :blink:
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
:shok:ops: поспешил. Почему-то с закомментированной строкой, AutoIt3.exe - 3.3.8.0 у меня проглотил, но стоило строку вообще удалить, и вылезла ошибка.

AutoIt3.exe - 3.3.8.0 действительно спотыкается при вполне нормальном синтаксисе
Код:
For $i = 1 To 10
    If $i = 7 Then ContinueLoop
Next

"ContinueLoop" statement with no matching "While", "Do" or "For" statement.:
If $i = 7 Then ContinueLoop
Версия 3.3.6.1 отрабатывает нормально.

Au3Check.exe от любой версии ошибок (лично у меня) не находит.



Добавлено:
Сообщение автоматически объединено:

CreatoR [?]
А если скомпилировать скрипт?
Кстати в скомпилированном виде, ошибок нет :blink: Мистика ;D
OffTopic:
2012 начался :laugh:
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403

winstan

Эксплотатор)
Сообщения
406
Репутация
78
CreatoR
я сам себя ввёл в заблуждения :(
 
Верх