17db96d56Sopenharmony_ci# Copyright 2006 Google, Inc. All Rights Reserved.
27db96d56Sopenharmony_ci# Licensed to PSF under a Contributor Agreement.
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci"""Fixer that transforms `xyzzy` into repr(xyzzy)."""
57db96d56Sopenharmony_ci
67db96d56Sopenharmony_ci# Local imports
77db96d56Sopenharmony_cifrom .. import fixer_base
87db96d56Sopenharmony_cifrom ..fixer_util import Call, Name, parenthesize
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ciclass FixRepr(fixer_base.BaseFix):
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ci    BM_compatible = True
147db96d56Sopenharmony_ci    PATTERN = """
157db96d56Sopenharmony_ci              atom < '`' expr=any '`' >
167db96d56Sopenharmony_ci              """
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_ci    def transform(self, node, results):
197db96d56Sopenharmony_ci        expr = results["expr"].clone()
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci        if expr.type == self.syms.testlist1:
227db96d56Sopenharmony_ci            expr = parenthesize(expr)
237db96d56Sopenharmony_ci        return Call(Name("repr"), [expr], prefix=node.prefix)
24