Commit 226a8ac6 authored by Robert Bradshaw's avatar Robert Bradshaw

Fix in visitor doctests

parent 60757b21
...@@ -25,18 +25,18 @@ class BasicVisitor(object): ...@@ -25,18 +25,18 @@ class BasicVisitor(object):
# Must resolve, try entire hierarchy # Must resolve, try entire hierarchy
pattern = "visit_%s" pattern = "visit_%s"
mro = inspect.getmro(cls) mro = inspect.getmro(cls)
handler_method = None
for mro_cls in mro: for mro_cls in mro:
try: if hasattr(self, pattern % mro_cls.__name__):
handler_method = getattr(self, pattern % mro_cls.__name__) handler_method = getattr(self, pattern % mro_cls.__name__)
break break
except AttributeError: if handler_method is None:
pass
else:
print type(self), type(obj) print type(self), type(obj)
if hasattr(self, 'access_path'): if hasattr(self, 'access_path'):
print self.access_path print self.access_path
print self.access_path[-1][0].pos if self.access_path:
print self.access_path[-1][0].__dict__ print self.access_path[-1][0].pos
print self.access_path[-1][0].__dict__
raise RuntimeError("Visitor does not accept object: %s" % obj) raise RuntimeError("Visitor does not accept object: %s" % obj)
#print "Caching " + cls.__name__ #print "Caching " + cls.__name__
self.dispatch_table[cls] = handler_method self.dispatch_table[cls] = handler_method
...@@ -60,7 +60,7 @@ class TreeVisitor(BasicVisitor): ...@@ -60,7 +60,7 @@ class TreeVisitor(BasicVisitor):
Example: Example:
>>> class SampleNode: >>> class SampleNode(object):
... child_attrs = ["head", "body"] ... child_attrs = ["head", "body"]
... def __init__(self, value, head=None, body=None): ... def __init__(self, value, head=None, body=None):
... self.value = value ... self.value = value
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment