AMIGA # 1
EVAL часто используется в командных файлах, например, для вычисления значений переменных цикла. Первым параметром всегда является числовой аргумент вычисляемого выражения, которому может предшествовать ключевое слово VALUE1. В случае, когда первый аргумент выражения не является первым по счету параметром команды EVAL, использование ключевого слова VALUE1 обязательно. По умолчанию числа вводятся в десятичном формате. Если числу предшествует комбинация символов \"0x\" или \"#X\", то оно считается шестнадцатиричным, а если число начинается с нуля или символа \"#\", то — восьмиричным. Используя символ апострофа \"\'\" можно также вводить ASCII-значения символов, например, \'А будет трактоваться, как 65. Старший бит ASCII-значения трактуется как знаковый разряд, т.е. все символы с кодами от 128 до 255 включительно (в этот диапазон, в частности, попадают и русские буквы) будут трактоваться как отрицательные числа в диапазоне от -128 до -1. ОР является тем оператором, который возможно применить к аргументу (аргументам). Вот список допустимых для EVAL операторов:
+ сложение
- вычитание, либо унарный минус
* умножение
/ деление
mod модуль
& побитовая операция И
| побитовая операция ИЛИ
хоr побитовая операция ИСКЛЮЧАЮЩЕЕ ИЛИ
~ побитовая операция отрицания (инверсия)
>> сдвиг числа влево
<< сдвиг числа вправо
eqv побитовая эквивалентность Если операнды и оператор идут в стандартном порядке, т.е. Операнд_1 Оператор Операнд_2, то ключевое слово ОР, равно как и VALUE2 употреблять необязательно. Есть нюанс, связанный с нахождением знака + в конце строки: после него обязательно должен стоять пробел, иначе он будет считаться не знаком сложения, а связывающим символом для двух соседних строк в командном файле. Второй необязательный аргумент VALUE2 может даваться в том же формате, что и VALUE1. ОС версий 2 и 3 позволяет использовать несколько аргументов, каждый из которых должен отделяться от предыдущего соответствующим оператором.
|