Merge
authorDag Sverre Seljebotn <dagss@student.matnat.uio.no>
Wed, 18 Jun 2008 01:51:40 +0000 (18:51 -0700)
committerDag Sverre Seljebotn <dagss@student.matnat.uio.no>
Wed, 18 Jun 2008 01:51:40 +0000 (18:51 -0700)
1  2 
Cython/CodeWriter.py
Cython/Compiler/Naming.py
Cython/Compiler/Symtab.py
Cython/Compiler/TreeFragment.py

index 283d080e703575204e51f801b1f447694231c9ed,d4161701c703b42f5a9304feedfab96a48fe02db..3a61a4e35fe8b623351d378c19cd0577f5262143
@@@ -1,5 -1,5 +1,6 @@@
  from Cython.Compiler.Visitor import TreeVisitor
  from Cython.Compiler.Nodes import *
++from Cython.Compiler.Symtab import TempName
  
  """
  Serializes a Cython code tree to Cython code. This is primarily useful for
Simple merge
index e80139c197d4e9d3b5339793d11ccb21b03a7cee,b1d09251558447036e0a8e6096ba61e0f1e19b93..0adb29543ad7eb778c8061a586731df84c9972a2
@@@ -16,8 -16,30 +16,31 @@@ from TypeSlots import 
  import ControlFlow
  import __builtin__
  
+ class TempName(object):
+     """
+     Use instances of this class in order to provide a name for
+     anonymous, temporary functions. Each instance is considered
+     a seperate name, which are guaranteed not to clash with one
+     another or with names explicitly given as strings.
+     The argument to the constructor is simply a describing string
+     for debugging purposes and does not affect name clashes at all.
+     NOTE: Support for these TempNames are introduced on an as-needed
+     basis and will not "just work" everywhere. Places where they work:
+     - (none)
+     """
+     def __init__(self, description):
+         self.description = description
+     # Spoon-feed operators for documentation purposes
+     def __hash__(self):
+         return id(self)
+     def __cmp__(self, other):
+         return cmp(id(self), id(other))
  possible_identifier = re.compile(ur"(?![0-9])\w+$", re.U).match
 +nice_identifier = re.compile('^[a-zA-Z0-0_]+$').match
  
  class Entry:
      # A symbol table entry in a Scope or ModuleNamespace.
index 90263bdac56f885af6ad840fe53647ecfc10c1f2,a1c0b677b790cf47dd5fb7cb55b38b00a645aa66..c5a574bc09082565c86d337cf5d47e46d689a9e3
@@@ -53,7 -54,7 +54,7 @@@ def parse_from_strings(name, code, pxds
      buf = StringIO(code.encode(encoding))
  
      scanner = PyrexScanner(buf, code_source, source_encoding = encoding,
--                     type_names = scope.type_names, context = context)
++                     scope = scope, context = context)
      tree = Parsing.p_module(scanner, 0, module_name)
      return tree