symbian-qemu-0.9.1-12/python-2.6.1/Lib/lib2to3/fixes/fix_ws_comma.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 """Fixer that changes 'a ,b' into 'a, b'.
       
     2 
       
     3 This also changes '{a :b}' into '{a: b}', but does not touch other
       
     4 uses of colons.  It does not touch other uses of whitespace.
       
     5 
       
     6 """
       
     7 
       
     8 from .. import pytree
       
     9 from ..pgen2 import token
       
    10 from .. import fixer_base
       
    11 
       
    12 class FixWsComma(fixer_base.BaseFix):
       
    13 
       
    14     explicit = True # The user must ask for this fixers
       
    15 
       
    16     PATTERN = """
       
    17     any<(not(',') any)+ ',' ((not(',') any)+ ',')* [not(',') any]>
       
    18     """
       
    19 
       
    20     COMMA = pytree.Leaf(token.COMMA, ",")
       
    21     COLON = pytree.Leaf(token.COLON, ":")
       
    22     SEPS = (COMMA, COLON)
       
    23 
       
    24     def transform(self, node, results):
       
    25         new = node.clone()
       
    26         comma = False
       
    27         for child in new.children:
       
    28             if child in self.SEPS:
       
    29                 prefix = child.get_prefix()
       
    30                 if prefix.isspace() and "\n" not in prefix:
       
    31                     child.set_prefix("")
       
    32                 comma = True
       
    33             else:
       
    34                 if comma:
       
    35                     prefix = child.get_prefix()
       
    36                     if not prefix:
       
    37                         child.set_prefix(" ")
       
    38                 comma = False
       
    39         return new