Ниже перечислены основные операции. Арифметические операции:
" - " - вычитание и унарный минус;
" + " - сложение
" * " - умножение
" / " - деление
" % " - деление по модулю
"**" - возведение в степень
Все операции имеют традиционный смысл, ( по "%", как и в С, такое деление дает
остаток от деление двух целых чисел).Операции сравнения и логические операции.
"<" - меньше
">" - больше
">=" - больше или равно
"<=" - меньше или равно
"!=" - не равно
"==" - равно
"&&" - логическое И
"||" - логическое ИЛИ
"!" - логическое НЕ
Двоичные операции
| - ИЛИ
& - И
>> - двоичный сдвиг вправо
<< - двоичный сдвиг влево
Операции присваивания
:= - простое присваивание правого операнда левому;
+= - присваивание левому операнду с предварительным суммированием левого и правого операндов;
-= - присваивание левому операнду с предварительным вычитанием из левого операнда правого;
*= - присваивание левому операнду с предварительным умножением левого и правого операндов;
/= - присваивание левому операнду с предварительным делением левого и правого операндов;
%= - присваивание левому операнду с предварительным делением по модулю
левого операнда на правый;
&= - присваивание левому операнду с предварительным применением операции & ( И ) к левому и правому операндам;
|= - присваивание левому операнду с предварительным применением операции | ( И ) к левому и правому операндам.
Операции адресования:
& - указание блока или указание глобальной метки по адресу в переменной.
@ - взятие адреса переменной или места.
$ - операция взятия состояния места
=* - копирование составных типов данных (массивов, структур и коллекций).
Пример:
private <int> [100] arrArr1, <int> [200] arrArr2
arrArr2 =* arrArr1
arrArr1 будет скопирован полностью в первую половину arrArr2
private < tagStru > [200] arrStru1, < tagStru > [50] arrStru2, =>
< tagStru > stru1, < tagStru > stru2
arrStru1 =* arrStru2
stru1 =* stru2
Корректность копирования составных данных контролируется компилятором. |
Представление констант CAPER носит обычный для большинства языков характер.
Тип Варианты
'D' - 123.45'D , -0.12345e3'D , 12345E-2'D
'F' - 123.45 , -0.12345e3 , 12345E-2
'G' - 1234567'G , 0'G , 10'G
'L' - -1234567'L , 0'L , -10'L
'W' - 12345'W , 0'W
'I'' - -12345'I , -1'I, 10'I
'H' - 12345'H , 1'H , 10'H
'J' - -123'J , -1'J , 10'J
'B' - 123'B , 200'B , 255'B
'C' - 123'C , 127'C , -127'C
Символ " ' " (одинарная кавычка), следующая за цифровой частью литерала,
означает наличие дескриптора типа, в котором должно быть представлено записанное
число - одна из букв обозначения типа (см. выше). Числовые литералы могут быть записаны и без дескриптора типа, и тогда
компилятор CAPER представляет число типом "I", если только в записи числа нет
признаков, требующих плавающего представления - десятичной точки и/или знака
порядка числа с плавающей точкой.
Кроме того предоставляется возможность записывать двоичные и шестнадцатеричные
константы:
двоичные -
0b00000100 - число 4
0b00000011 - число 3
0b00000010 - число 2
(все будут переведены в тип 'I')
0b0000000100000011'H - число 300 в 2-х байтах
0b00000011'B - число 3 в одном байте
и шестнадцатеричные -
0x01'B - число 1 в одном байте
0x0A'B - число 10 в одном байте
0x000001F2 - число 498 в четырех байтах (тип 'I').
Традиционно представление и символьных констант:
'К' - символ
"Строковый литерал"
var1 := 0x01
var2 := 12345 (т.е. 12345'I ) |