Операторы
https://www.angelcode.com/angelscript/sdk/docs/manual/doc_operator_precedence.html
Оператор | Описание | Пример | |
---|---|---|---|
Приоритет: 1, ассоциативность: нет | |||
:: | Область видимости | a::b | |
Приоритет: 2, ассоциативность слева направо: слева направо | |||
. | Доступ к члену | a.b | |
[] | opIndex | Доступ к индексу | a[b] |
() | opCall | Вызов функции | a(b) |
++ | Пост-инкремент | a++ | |
-- | Пост-декремент | a-- | |
Приоритет: 3, ассоциативность: справа налево | |||
++ | Пре-инкремент | ++a | |
-- | Пре-декремент | --a | |
~ | Побитовое отрицание | ~a | |
- | Математическая смена знака | -a | |
! | Логическое НЕ | !a | |
not | Логическое НЕ | not a | |
+ | Математическое взятие модуля | +a | |
@ | Ссылка | @a | |
() | Приведение типа | a(b) | |
cast | Приведение типа | cast<a>(b) | |
Приоритет: 4, ассоциативность: слева направо | |||
** | opPow | Возведение в степень | a**b |
Приоритет: 5, ассоциативность: слева направо | |||
* | opMul | Умножение | a*b |
/ | opDiv | Деление | a/b |
% | opMod | Остаток от деления | a%b |
Приоритет: 6, ассоциативность: слева направо | |||
+ | opAdd | Сложение | a+b |
- | opSub | Вычитание | a-b |
Приоритет: 7, ассоциативность: слева направо | |||
<< | opShl | Битовый сдвиг влево | a<<b |
>> | opShr | Битовый сдвиг вправо с сохранением знакового бита | a>>b |
>>> | opUShr | Битовый сдвиг вправо с заполнением нулями | a>>>b |
Приоритет: 8, ассоциативность: слева направо | |||
< | Меньше | a<b | |
> | Больше | a>b | |
<= | Меньше или равно | a<=b | |
>= | Больше или равно | a>=b | |
Приоритет: 9, ассоциативность: слева направо | |||
== | Равно | a==b | |
!= | Не равно | a!=b | |
is | Принадлежит | a is b | |
!is | Не принадлежит | a !is b | |
^^ | Логическое исключающее ИЛИ | a^^b | |
xor | Логическое исключающее ИЛИ | a xor b | |
Приоритет: 10, ассоциативность: слева направо | |||
& | opAnd | Битовое И | a&b |
Приоритет: 11, ассоциативность: слева направо | |||
^ | opXor | Битовое исключающее ИЛИ | a^b |
Приоритет: 12, ассоциативность: слева направо | |||
| | opOr | Битовое ИЛИ | a|b |
Приоритет: 13, ассоциативность: слева направо | |||
&& | Логическое И | a&&b | |
and | Логическое И | a and b | |
Приоритет: 14, ассоциативность: слева направо | |||
|| | Логическое ИЛИ | a||b | |
or | Логическое ИЛИ | a or b | |
Приоритет: 15, ассоциативность: справа налево | |||
? : | Тернарный оператор | a?b:c | |
= | opAssign | Присваивание | a=b |
**= | opPowAssign | Присваивающее возведение в степень | a**=b |
*= | opMulAssign | Присваивающее умножение | a*=b |
/= | opDivAssign | Присваивающее деление | a/=b |
%= | opModAssign | Присваивающий остаток от деления | a%=b |
+= | opAddAssign | Присваивающее сложение | a+=b |
-= | opSubAssign | Присваивающее вычитание | a-=b |
<<= | opShlAssign | Присваивающий битовый сдвиг влево | a<<=b |
>>= | opShrAssign | Присваивающий битовый сдвиг вправо с сохранением знакового бита | a>>=b |
>>>= | opUShrAssign | Присваивающий битовый сдвиг вправо с заполнением нулями | a>>>=b |
&= | opAndAssign | Присваивающее битовое И | a&=b |
^= | opXorAssign | Присваивающее битовое исключающее ИЛИ | a^=b |
|= | opOrAssign | Присваивающее битовое ИЛИ | a|=b |
Приоритет: 16, ассоциативность: слева направо | |||
, | Перечисление | a,b |
Ассоциативность
Определяет направление разбора выражения.
Приоритет
Определяет приоритет выполнения операций.
Чем меньше значение в таблице тем приоритет считается выше, то бишь операция выполнится раньше других. Для операций с одинаковым приоритетом операции будут выполняться в порядке, заданном ассоциативностью.
Перегрузка
https://www.angelcode.com/angelscript/sdk/docs/manual/doc_script_class_ops.html
Метод класса, который используется для перегрузки оператора.