This is topic Снова к вопросу о именах переменных in forum Языки программирования (IL/FBD) / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.
Пример функционального блока: #DEFINE I0 M1 CALL TEST 0 ( M1 , 3 , Q0 ) В результате его добавления получаем функциональный блок с одним входом ( RUN ) и одним выходом, который называется M1 (?) Судя по справочной системе, этот пример корректен, но неправильно компилируется. Если его слегка переделать #DEFINE I0 M1 F0 = M1 CALL TEST 0 ( M1 , 3 , Q0 ) то сразу появляется потерянный вход. Если поменять переменную M1 на V1, то получим следующий результат: #DEFINE I0 V1 F0 = V1 CALL TEST 0 ( V1 , 3 , Q0 ) Дамп: 01 05[0] 01[1] : = F0 V1 (ERR8)Имя не найдено:V1 То есть выражение F0 = V1 компилятор понял, а при вызове блока он не смог найти переменную V1. Эта ошибка наблюдается для переменных, которые начинаются с буквы V и некоторых других.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В приводимых Вами текстах IL-программ содержится общая синтаксическая ошибка: после имени параметра (M1 и V1) в операторе CALL имеется пробел перед разделяющей запятой. Он будет отнесен к имени переменной. Поэтому она и не находится. Я убрал этот пробел и проверил как трансляцию блока, так и его функционирование. Все работает правильно.