Make the code aware that there are multiple block kinds

For now we handle just "file" blocks. More will come in the near future.
Implement function declarations
Handle "stmt" blocks