Hello World

- AST changes
  - Expressions cannot be statements
  - functional calls can be expressions or statements
- refactor AST printing to be uniform and separated from the types declaration
  - removed redundant print methods
- split SAST variable declarations and assignments into two different types
- split SAST checks, printing and helper methods into separate files
- add string literals support in code generation

# - Got Hello World to Compile and Test in CI!
:fireworks: