Interprets AST.
NOTE: AST must be built before the interpretation.
Low-level API. Returns an interpreter state.