feat(ast): Add new parser that produces an AST.