Generates a rich AST