diff options
author | Emile Anclin <emile.anclin@logilab.fr> | 2009-02-03 17:01:44 +0100 |
---|---|---|
committer | Emile Anclin <emile.anclin@logilab.fr> | 2009-02-03 17:01:44 +0100 |
commit | 3104378356fde252168db05dd5a7ffac9183f5d3 (patch) | |
tree | 552a90e29346f2d219b73661cc10aeffef882cdf /builder.py | |
parent | 10148fcd11ed6200ce0cd599bd315e59000a03c8 (diff) | |
download | astroid-git-3104378356fde252168db05dd5a7ffac9183f5d3.tar.gz |
some improvements on AssAttr, AssList, AssTuple
--HG--
branch : _ast_compat
Diffstat (limited to 'builder.py')
-rw-r--r-- | builder.py | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -160,7 +160,8 @@ class ASTNGBuilder: self._walker.walk(node) while self._delayed: dnode = self._delayed.pop(0) - getattr(self, 'delayed_visit_%s' % dnode.__class__.__name__.lower())(dnode) + node_name = dnode.__class__.__name__.lower() + getattr(self, 'delayed_visit_%s' % node_name)(dnode) return node # callbacks to build from an existing compiler.ast tree ################### @@ -492,15 +493,20 @@ class ASTNGBuilder: def visit_assname(self, node): """visit a AssName node -> add name to locals""" self.visit_default(node) - nodes.init_assname(node) self._add_local(node, node.name) + nodes.init_assname(node) def visit_assattr(self, node): """visit a AssAttr node -> delay it to handle members definition later """ self.visit_default(node) - self._delayed.append(node) + nodes.init_assattr(node) + #self._delayed.append(node) XXX move to visit_getattr ? + + def visit_asslist(self, node): + self.visit_default(node) + nodes.init_asslist(node) def visit_asstuple(self, node): self.visit_default(node) @@ -540,7 +546,7 @@ class ASTNGBuilder: values.append(node) except InferenceError: pass - + # py2.5 (ast mode) only callbacks ######################################### def visit_attribute(self, node): @@ -559,6 +565,8 @@ class ASTNGBuilder: self.visit_default(node) nodes.init_str(node) + delayed_visit_attribute = delayed_visit_assattr # ??? + def delayed_visit_attribute(self, node): """visit a AssAttr node -> add name to locals, handle members definition """ |