[pypy-svn] r9593 - pypy/dist/pypy/translator

tismer at codespeak.net tismer at codespeak.net
Thu Mar 3 00:22:04 CET 2005


Author: tismer
Date: Thu Mar  3 00:22:04 2005
New Revision: 9593

Modified:
   pypy/dist/pypy/translator/gensupp.py   (contents, props changed)
Log:
eol style

Modified: pypy/dist/pypy/translator/gensupp.py
==============================================================================
--- pypy/dist/pypy/translator/gensupp.py	(original)
+++ pypy/dist/pypy/translator/gensupp.py	Thu Mar  3 00:22:04 2005
@@ -1,159 +1,159 @@
-"""
-Some support for genxxx implementations of source generators.
-Another name could be genEric, but well...
-"""
-
-from __future__ import generators
-
-import sys
-
-from pypy.objspace.flow.model import Block
-from pypy.objspace.flow.model import traverse
-
-# ordering the blocks of a graph by source position
-
-def ordered_blocks(graph):
-    # collect all blocks
-    allblocks = []
-    def visit(block):
-        if isinstance(block, Block):
-            # first we order by offset in the code string
-            if block.operations:
-                ofs = block.operations[0].offset
-            else:
-                ofs = sys.maxint
-            # then we order by input variable name or value
-            if block.inputargs:
-                txt = str(block.inputargs[0])
-            else:
-                txt = "dummy"
-            allblocks.append((ofs, txt, block))
-    traverse(visit, graph)
-    allblocks.sort()
-    #for ofs, txt, block in allblocks:
-    #    print ofs, txt, block
-    return [block for ofs, txt, block in allblocks]
-
-# a unique list, similar to a list.
-# append1 appends an object only if it is not there,already.
-
-class UniqueList(list):
-    def __init__(self, *args, **kwds):
-        list.__init__(self, *args, **kwds)
-        self.dic = {}
-
-    def append1(self, arg):
-        try:
-            self.dic[arg]
-        except KeyError:
-            self.dic[arg] = 1
-            list.append(self, arg)
-        except TypeError: # not hashable
-            if arg not in self:
-                list.append(self, arg)
-
-def builtin_base(obj):
-    typ = type(obj)
-    while typ.__module__ != '__builtin__':
-        typ = typ.__base__
-    return typ
-
-def c_string(s):
-    return '"%s"' % (s.replace('\\', '\\\\').replace('"', '\"'),)
-
-def uniquemodulename(name, SEEN={}):
-    # never reuse the same module name within a Python session!
-    i = 0
-    while True:
-        i += 1
-        result = '%s_%d' % (name, i)
-        if result not in SEEN:
-            SEEN[result] = True
-            return result
-
-# a translation table suitable for str.translate() to remove
-# non-C characters from an identifier
-C_IDENTIFIER = ''.join([(('0' <= chr(i) <= '9' or
-                          'a' <= chr(i) <= 'z' or
-                          'A' <= chr(i) <= 'Z') and chr(i) or '_')
-                        for i in range(256)])
-
-# a name manager knows about all global and local names in the
-# program and keeps them disjoint. It provides ways to generate
-# shorter local names with and without wrapping prefixes,
-# while always keeping all globals visible.
-
-class NameManager(object):
-    def __init__(self):
-        self.seennames = {}
-        self.scope = 0
-        self.scopelist = []
-
-    def make_reserved_names(self, txt):
-        """add names to list of known names. If one exists already,
-        then we raise an exception. This function should be called
-        before generating any new names."""
-        for name in txt.split():
-            if name in self.seennames:
-                raise NameError, "%s has already been seen!"
-            self.seennames[name] = 1
-
-    def uniquename(self, basename):
-        basename = basename.translate(C_IDENTIFIER)
-        n = self.seennames.get(basename, 0)
-        self.seennames[basename] = n+1
-        if basename in ('v', 'w_'):
-            if n == 0:
-                return '%s%d' % (basename, n)
-            else:
-                return self.uniquename('%s%d' % (basename, n))
-        if n == 0:
-            return basename
-        else:
-            return self.uniquename('%s_%d' % (basename, n))
-
-    def localScope(self, parent=None):
-        ret = _LocalScope(self, parent)
-        while ret.scope >= len(self.scopelist):
-            self.scopelist.append({})
-        return ret
-
-class _LocalScope(object):
-    """track local names without hiding globals or nested locals"""
-    def __init__(self, glob, parent):
-        self.glob = glob
-        if not parent:
-            parent = glob
-        self.parent = parent
-        self.mapping = {}
-        self.usednames = {}
-        self.scope = parent.scope + 1
-
-    def uniquename(self, basename):
-        basename = basename.translate(C_IDENTIFIER)
-        glob = self.glob
-        p = self.usednames.get(basename, 0)
-        self.usednames[basename] = p+1
-        namesbyscope = glob.scopelist[self.scope]
-        namelist = namesbyscope.setdefault(basename, [])
-        if p == len(namelist):
-            namelist.append(glob.uniquename(basename))
-        return namelist[p]
-
-    def localname(self, name, wrapped=False):
-        """modify and mangle local names"""
-        if name in self.mapping:
-            return self.mapping[name]
-        scorepos = name.rfind("_")
-        if name.startswith("v") and name[1:].isdigit():
-            basename = ('v', 'w_') [wrapped]
-        elif scorepos >= 0 and name[scorepos+1:].isdigit():
-            basename = name[:scorepos]
-            if wrapped:
-                basename = "w_" + basename
-        else:
-            basename = name
-        ret = self.uniquename(basename)
-        self.mapping[name] = ret
-        return ret
-
+"""
+Some support for genxxx implementations of source generators.
+Another name could be genEric, but well...
+"""
+
+from __future__ import generators
+
+import sys
+
+from pypy.objspace.flow.model import Block
+from pypy.objspace.flow.model import traverse
+
+# ordering the blocks of a graph by source position
+
+def ordered_blocks(graph):
+    # collect all blocks
+    allblocks = []
+    def visit(block):
+        if isinstance(block, Block):
+            # first we order by offset in the code string
+            if block.operations:
+                ofs = block.operations[0].offset
+            else:
+                ofs = sys.maxint
+            # then we order by input variable name or value
+            if block.inputargs:
+                txt = str(block.inputargs[0])
+            else:
+                txt = "dummy"
+            allblocks.append((ofs, txt, block))
+    traverse(visit, graph)
+    allblocks.sort()
+    #for ofs, txt, block in allblocks:
+    #    print ofs, txt, block
+    return [block for ofs, txt, block in allblocks]
+
+# a unique list, similar to a list.
+# append1 appends an object only if it is not there,already.
+
+class UniqueList(list):
+    def __init__(self, *args, **kwds):
+        list.__init__(self, *args, **kwds)
+        self.dic = {}
+
+    def append1(self, arg):
+        try:
+            self.dic[arg]
+        except KeyError:
+            self.dic[arg] = 1
+            list.append(self, arg)
+        except TypeError: # not hashable
+            if arg not in self:
+                list.append(self, arg)
+
+def builtin_base(obj):
+    typ = type(obj)
+    while typ.__module__ != '__builtin__':
+        typ = typ.__base__
+    return typ
+
+def c_string(s):
+    return '"%s"' % (s.replace('\\', '\\\\').replace('"', '\"'),)
+
+def uniquemodulename(name, SEEN={}):
+    # never reuse the same module name within a Python session!
+    i = 0
+    while True:
+        i += 1
+        result = '%s_%d' % (name, i)
+        if result not in SEEN:
+            SEEN[result] = True
+            return result
+
+# a translation table suitable for str.translate() to remove
+# non-C characters from an identifier
+C_IDENTIFIER = ''.join([(('0' <= chr(i) <= '9' or
+                          'a' <= chr(i) <= 'z' or
+                          'A' <= chr(i) <= 'Z') and chr(i) or '_')
+                        for i in range(256)])
+
+# a name manager knows about all global and local names in the
+# program and keeps them disjoint. It provides ways to generate
+# shorter local names with and without wrapping prefixes,
+# while always keeping all globals visible.
+
+class NameManager(object):
+    def __init__(self):
+        self.seennames = {}
+        self.scope = 0
+        self.scopelist = []
+
+    def make_reserved_names(self, txt):
+        """add names to list of known names. If one exists already,
+        then we raise an exception. This function should be called
+        before generating any new names."""
+        for name in txt.split():
+            if name in self.seennames:
+                raise NameError, "%s has already been seen!"
+            self.seennames[name] = 1
+
+    def uniquename(self, basename):
+        basename = basename.translate(C_IDENTIFIER)
+        n = self.seennames.get(basename, 0)
+        self.seennames[basename] = n+1
+        if basename in ('v', 'w_'):
+            if n == 0:
+                return '%s%d' % (basename, n)
+            else:
+                return self.uniquename('%s%d' % (basename, n))
+        if n == 0:
+            return basename
+        else:
+            return self.uniquename('%s_%d' % (basename, n))
+
+    def localScope(self, parent=None):
+        ret = _LocalScope(self, parent)
+        while ret.scope >= len(self.scopelist):
+            self.scopelist.append({})
+        return ret
+
+class _LocalScope(object):
+    """track local names without hiding globals or nested locals"""
+    def __init__(self, glob, parent):
+        self.glob = glob
+        if not parent:
+            parent = glob
+        self.parent = parent
+        self.mapping = {}
+        self.usednames = {}
+        self.scope = parent.scope + 1
+
+    def uniquename(self, basename):
+        basename = basename.translate(C_IDENTIFIER)
+        glob = self.glob
+        p = self.usednames.get(basename, 0)
+        self.usednames[basename] = p+1
+        namesbyscope = glob.scopelist[self.scope]
+        namelist = namesbyscope.setdefault(basename, [])
+        if p == len(namelist):
+            namelist.append(glob.uniquename(basename))
+        return namelist[p]
+
+    def localname(self, name, wrapped=False):
+        """modify and mangle local names"""
+        if name in self.mapping:
+            return self.mapping[name]
+        scorepos = name.rfind("_")
+        if name.startswith("v") and name[1:].isdigit():
+            basename = ('v', 'w_') [wrapped]
+        elif scorepos >= 0 and name[scorepos+1:].isdigit():
+            basename = name[:scorepos]
+            if wrapped:
+                basename = "w_" + basename
+        else:
+            basename = name
+        ret = self.uniquename(basename)
+        self.mapping[name] = ret
+        return ret
+



More information about the Pypy-commit mailing list