| # Copyright 2006 Google, Inc. All Rights Reserved. |
| # Licensed to PSF under a Contributor Agreement. |
| |
| """Fixer that turns 'long' into 'int' everywhere. |
| |
| This also strips the trailing 'L' or 'l' from long loterals. |
| """ |
| |
| # Local imports |
| from .. import pytree |
| from .. import fixer_base |
| from ..fixer_util import Name, Number |
| |
| |
| class FixLong(fixer_base.BaseFix): |
| |
| PATTERN = """ |
| (long_type = 'long' | number = NUMBER) |
| """ |
| |
| static_long = Name("long") |
| static_int = Name("int") |
| |
| def transform(self, node, results): |
| long_type = results.get("long_type") |
| number = results.get("number") |
| new = None |
| if long_type: |
| assert node == self.static_long, node |
| new = self.static_int.clone() |
| if number and node.value[-1] in ("l", "L"): |
| new = Number(node.value[:-1]) |
| if new is not None: |
| new.set_prefix(node.get_prefix()) |
| return new |