Add ast + visitor