# Declarations

## Use declaration

This declaration starts with the keyword **use**.

```go
use_decl := 'use' IDENTIFIER | STRING ('as' STRING)?
```

After the keyword, we allow an identifier or a string as a module name. And optional **as** postfix makes alias.

## Var declaration

This declaration starts with the keyword **var**.

```go
var_decl := 'var' IDENTIFIER ('=' expr)?
```

The identifier becomes the name of variable. If **=** follows behind, we have an initializer value.

## Class declaration

// todo

## Func declaration

// todo
