Add error handling, refactor lexer indent system