diff options
| author | Martin v. Löwis <martin@v.loewis.de> | 2008-03-19 04:43:46 (GMT) |
|---|---|---|
| committer | Martin v. Löwis <martin@v.loewis.de> | 2008-03-19 04:43:46 (GMT) |
| commit | 5e37baea8007cb64b65a180e4d6c80de292a8a4a (patch) | |
| tree | af8b06bfe03af755de5bf83e9aa01f299186a8f7 /Lib/lib2to3/fixes/fix_long.py | |
| parent | a4d77898db3856cd3d8c9411d024bea88be25b66 (diff) | |
| download | cpython-5e37baea8007cb64b65a180e4d6c80de292a8a4a.zip cpython-5e37baea8007cb64b65a180e4d6c80de292a8a4a.tar.gz cpython-5e37baea8007cb64b65a180e4d6c80de292a8a4a.tar.bz2 | |
Import lib2to3.
Diffstat (limited to 'Lib/lib2to3/fixes/fix_long.py')
| -rw-r--r-- | Lib/lib2to3/fixes/fix_long.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Lib/lib2to3/fixes/fix_long.py b/Lib/lib2to3/fixes/fix_long.py new file mode 100644 index 0000000..1987e96 --- /dev/null +++ b/Lib/lib2to3/fixes/fix_long.py @@ -0,0 +1,35 @@ +# 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 basefix +from .util import Name, Number + + +class FixLong(basefix.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 |
