# 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)

- **=**

