# Precedences

Precedences of all kinds of expressions are listed below in descending precedence.

## 1


- All expressions that does not starts with another expression as a prefix.
- **\<EXPR-PRECEDENCE-1\>**.observe ( ... )
- **\<EXPR-PRECEDENCE-1\>**.observe as NAME ( ... )
- **\<EXPR-PRECEDENCE-1\>**( ... )
- **\<EXPR-PRECEDENCE-1\>**[ ... ]
- **\<EXPR-PRECEDENCE-1\>**in ...
- **\<EXPR-PRECEDENCE-1\>**not in ...
- **\<EXPR-PRECEDENCE-1\>**is TYPE
- **\<EXPR-PRECEDENCE-1\>**is not TYPE
- **\<EXPR-PRECEDENCE-1\>**is null
- **\<EXPR-PRECEDENCE-1\>**is not null

## 2 (unary operators)


- **+**
- **-**
- **not**
- **cast**

## 3


- **^**

## 4


- *****
- **/**
- **%**

## 5


- **+**
- **-**
- **&**
- **|**

## 6


- **shl**
- **shr**

## 7


- **\<**
- **\>**
- **\<=**
- **\>=**
- **==**
- **!=**

## 8


- **xor**

## 9


- **and**

## 10


- **or**

## 11


- **??**

## 12 (if expression)


- **? :**

## 13 (assignment expression)


- **=**

