[Python-checkins] r54498 - in sandbox/trunk/2to3: pytree.py tests/test_pytree.py

collin.winter python-checkins at python.org
Wed Mar 21 21:56:36 CET 2007


Author: collin.winter
Date: Wed Mar 21 21:56:31 2007
New Revision: 54498
Modified:
 sandbox/trunk/2to3/pytree.py
 sandbox/trunk/2to3/tests/test_pytree.py
Log:
Add a prefix keyword argument to Node and Leaf constructors.
Modified: sandbox/trunk/2to3/pytree.py
==============================================================================
--- sandbox/trunk/2to3/pytree.py	(original)
+++ sandbox/trunk/2to3/pytree.py	Wed Mar 21 21:56:31 2007
@@ -137,7 +137,7 @@
 
 """Concrete implementation for interior nodes."""
 
- def __init__(self, type, children, context=None):
+ def __init__(self, type, children, context=None, prefix=None):
 """Initializer.
 
 Takes a type constant (a symbol number >= 256), a sequence of
@@ -151,6 +151,8 @@
 for ch in self.children:
 assert ch.parent is None, repr(ch)
 ch.parent = self
+ if prefix is not None:
+ self.set_prefix(prefix)
 
 def __repr__(self):
 """Returns a canonical string representation."""
@@ -207,7 +209,7 @@
 lineno = 0 # Line where this token starts in the input
 column = 0 # Column where this token tarts in the input
 
- def __init__(self, type, value, context=None):
+ def __init__(self, type, value, context=None, prefix=None):
 """Initializer.
 
 Takes a type constant (a token number < 256), a string value,
@@ -218,6 +220,8 @@
 self.prefix, (self.lineno, self.column) = context
 self.type = type
 self.value = value
+ if prefix is not None:
+ self.prefix = prefix
 
 def __repr__(self):
 """Returns a canonical string representation."""
Modified: sandbox/trunk/2to3/tests/test_pytree.py
==============================================================================
--- sandbox/trunk/2to3/tests/test_pytree.py	(original)
+++ sandbox/trunk/2to3/tests/test_pytree.py	Wed Mar 21 21:56:31 2007
@@ -163,6 +163,22 @@
 self.failUnless(n1.was_changed)
 self.failUnless(n2.was_changed)
 self.failIf(l1.was_changed)
+ 
+ def testLeafConstructorPrefix(self):
+ for prefix in ("xyz_", ""):
+ l1 = pytree.Leaf(100, "self", prefix=prefix)
+ self.failUnless(str(l1), prefix + "self")
+ self.assertEqual(l1.get_prefix(), prefix)
+ 
+ def testNodeConstructorPrefix(self):
+ for prefix in ("xyz_", ""):
+ l1 = pytree.Leaf(100, "self")
+ l2 = pytree.Leaf(100, "foo", prefix="_")
+ n1 = pytree.Node(1000, [l1, l2], prefix=prefix)
+ self.failUnless(str(n1), prefix + "self_foo")
+ self.assertEqual(n1.get_prefix(), prefix)
+ self.assertEqual(l1.get_prefix(), prefix)
+ self.assertEqual(l2.get_prefix(), "_")
 
 
 class TestPatterns(support.TestCase):


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /