Условная генерация пользовательской ошибки.




 

Директивы.ERRB (ERRIFB) и.ERRNB (ERRIFNB).

 

Синтаксис директив:

 

.ERRB (ERRIFB) <имя_формального_аргумента> - генерация пользовательской ошибки, если <имя_формального_аргумента> пропущено;

.ERRNB (ERRIFNB) <имя_формального_аргумента> - генерация пользовательской ошибки, если <имя_формального_аргумента> присутствует.

 

Применяются для генерации ошибки трансляции в зависимости от того, задан или нет при вызове макрокоманды фактический аргумент, соответствующий формальному аргументу в заголовке макроопределения с именем <имя_формального_аргумента>. Их обычно используют для проверки задания параметров при вызове макроса.

Директивы.ERRDEF (ERRIFDEF) и.ERRNDEF (ERRIFNDEF).

 

Синтаксис директив:

 

.ERRDEF (ERRIFDEF) символическое_имя - если указанное имя определено до выдачи этой директивы в программе, то генерируется пользовательская ошибка;

.ERRNDEF (ERRIFNDEF) символическое_имя – если указанное символическое_имя не определено до момента обработки транслятором данной директивы, то генерируется пользовательская ошибка.

 

Данные директивы генерируют ошибку трансляции в зависимости от того, определено или нет некоторое символическое_имя в программе.

 

Директивы.ERRDIF (ERRIFDIF) и.ERRIDN (ERRIFIDN).

 

Синтаксис директив:

 

.ERRDIF (ERRIFDIF) <строка_1>, <строка_2> - директива, генерирующая пользовательскую ошибку, если две строки посимвольно не совпадают. Строки могут быть символическими именами, числами или выражениями и должны быть заключены в угловые скобки. Учитывает различие прописных и срочных букв;

.ERRIDN (ERRIFIDN) <строка_1>, <строка_2> - директива, генерирующая пользовательскую ошибку, если строки посимвольно идентичны. Учитывает различие прописных и срочных букв.

 

Для игнорирования различных строчных и прописных букв, существуют аналогичные директивы:

 

.ERRIFDIFI <строка_1>, <строка_2> - то же, что и ERRIFDIF, но игнорируется различие строчных и прописных букв;

.ERRIFIDNI <строка_1>, <строка_2> - то же, что и ERRIFIDN, но игнорируется различие строчных и прописных букв.

 

Директивы.ERRE (ERRIFE) и.ERRNZ (ERRIF).

 

Синтаксис директив:

 

.ERRE (ERRIFE) константное_выражение – директива вызывает пользовательскую ошибку, если константное_выражение ложно (равно нулю). Вычисление константного_выражения должно приводить к абсолютному значению, и это выражение не может содержать компонентов, являющихся ссылками вперед.

.ERRNZ (ERRIF) константное_выражение – директива вызывает пользовательскую ошибку, если константное_выражение истино (не равно нулю). Вычисление константного_выражения должно приводить к абсолютному значению, и это выражение не может содержать компонентов, являющихся ссылками вперед.

 

(слайд №24)

Константные выражения в условных директивах.

 

Константные выражения должны:

  • давать абсолютный результат;
  • содержать только компоненты, являющиеся ссылками назад, а не вперед;

Кроме этого константные выражения могут приводить к чисто логическому результату с помощью операторов отношений, выражающих отношение двух значений или константных выражений. В контексте условных директив вместе с операторами отношений можно рассматривать и логические операторы. Так результатом работы и тех и других может быть одно из двух значений:

  • истина – число, которое сдержит двоичные единицы во всех разрядах;
  • ложь – число, которое содержит двоичные нули во всех разрядах.

 

(слайд №25)

Операторы, которые можно применять в выражениях условных директив и которые формируют логические результаты, следующие:

 

Оператор отношения Синтаксис Результат
EQ (equal) - равно выражение_1 EQ выражение_2 Истина, если выражение_1 равно выражение_2
NE (not equal) – не равно выражение_1 NE выражение_2 Истина, если выражениe_1 не равно выражение_2
LT (less than) – меньше выражение_1 LT выражение_2 Истина, если выражениe_1 меньше выражение_2
GT (greater than) – больше выражение_1 GT выражение_2 Истина, если выражениe_1 больше выражение_2
GE (greater or equal) – больше или равно выражение_1 GE выражение_2 Истина, если выражениe_1 больше или равно выражение_2
NOT – логическое отрицание NOT выражение Истина, если выражение ложно; ложь, если выражение истинно
AND – логическое И выражение_1 AND выражение_2 Истина, если выражение_1 и выражение_2 истины
OR – логическое ИЛИ выражение_1 OR выражение_2 Истина, если выражение_1 и выражение_2 истины
XOR – исключающее ИЛИ выражение_1 XOR выражение_2 Истина, если выражение_1 = (NOT выражение_2)

 

(слайд №26)



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-09-06 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: