## 🚀 New features
### 
- ✨ Add variable declarations
- ✨ Add conditional expressions
- ✨ Add negative unary operator
- ✨ Add expression grouping
- ✨ Add anonymous functions
- ✨ Add function types
- ✨ Typecheck conditional expressions
- ✨ Add scoped variables
- ✨ Add type environment
- ✨ Check for binary operations
- ✨ Allow for multiple type errors to be caught
- ✨ Add primitive type checker
- ✨ Add typing system
- ✨ Add syntax highlighting
-  ✨ (scanner): Add `enum` keyword
-  ✨ (parser): Add `combine` for `Diagnostic`
-  ✨ (parser): Enforce `;` after expression statements
-  ✨ (scanner): Add `Lexeme`
-  ✨ (tokenizer): Create `ParenOpen` and `ParenClose`
-  ✨ (tokenizer): Create `tokenizer`
### Parser
- ✨ Add enum parsing
- ✨ Add struct initializer expression
- ✨ Add tuples
- ✨ Add struct parsing
- ✨ Add typing
- ✨ Add assignment and unary expressions
- ✨ Add variable declarations
- ✨ Add expression groupings
- ✨ Add basic error diagnostic messages
- ✨ Add PRATT parser
### Scanner
- ✨ Add indentation as a token
- ✨ Add struct keyword
- ✨ Seperate lexeme to own file and add more tokens
### Tokenizer
- ✨ Curly braces
- ✨ Characters

## 🐛 Bug fixes
### 
-  🩹 refactor error handling using `Diagnostics` struct
- 🚸 Improve error messages
- 🚸 Improve binary operator error message
-  3.0 (#28)
- 🐛 Fix compiler warnings
- 🐛 Fix function calls
- ➖ Remove unused dependencies
-  ➕ Add `inkwell`
- 🐛 Fix unit types not having a correct span
- 🐛 Fix duplicate typing error messages
- 🐛 Fix debug typing printing
-  🐛 (parser): Fix `no expression handler` error starting at wrong position
-  🐛 (scanner): Fix `var` regex
-  ✏️ (scanner): Rename `Token::Equiality` to `Token::Equality`
-  ➖ Remove unused `codespan` dependency
-  🐛 (scanner): Fix `Lexeme` `position` being invalid for `Invalid` tokens
- 📌 Pin anyhow and regex crates
### Parser
- 🐛 Fix panic mode skipping over the second token
- 🚸 Improve error messages
- 🚸 Improve type handler not found error message
- 🚸 Improve expect_tokens error message
- 🚸 Improve expression handler not found error message
- 🚸 Improve error messages
- 🚸 Gather multiple diagnostics
- 🐛 Fix binding power not propegating correctly
### ️ (parser
- ♿ Improve error messages
- ♿ Add panic recovery mode
### Scanner
- 🩹 Fix invalid lexemes having a wrong starting range index
### Tokenizer
- 🐛 Remove unintended character

