# hw4 - Kompilatorer (del 1)
Skapa ett offentligt repo i organistationen med namnet `[kth-id]-compiler`
Definiera ett programmeringsspråk (eller sno ett) och beskriv syntaxen på [BNF](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form) (eller liknande).
Denna vecka ska ni skriva en Parser som bygger ett [AST (Abstract Syntax Tree)](https://en.wikipedia.org/wiki/Abstract_syntax_tree) från source-code i ert språk.
(Ni får inte användas en parser generator utan parsern måste vara handskriven)
**Tips:** skriv en funktion för att printa ut AST:n.
## Krav
Ert språk bör hantera:
- Aritmetik (+, -, *, /)
- Variable assignment
- Bara integers behöver stödjas
- Output (Skriva ut tal t.ex print(a)) - OBS! endast integers är nödvändigt
- If-statser (eller liknande conditionals)
- Loopar (av valfri sort)
### Mål
Ert programeringspråk ska kunna användas för att implementera ett program som genererar fibonacci talen.
#### Funktionella språk
Om ni vill implementera ett funktionellt språk är det också tillåtet, då kan ni såklart behöva byta vissa krav. Så länge programmet kan implementera fibonacci är det okej.
## Resurser
- [BNF Playground](https://bnfplayground.pauliankline.com/)
- [slides](https://docs.google.com/presentation/d/1VLF94OharEuVYwoC7xxA-LolV_c3j1VzkTsAJ1GjWiY/edit?usp=sharing)
- [Bra bok om kompilatorer](https://www3.nd.edu/~dthain/compilerbook/)
- [Relativt enkelt bibliotek för kodgenerering](https://c9x.me/compile/)