Esempio n. 1
0
 def transform(self, d):
     if isinstance(d, string_types):
         return d
     c = self.get_node_children(d)
     node = ASTNode(self.get_node_name(d))
     children = self.get_transform_func(d)(c, node)
     if isinstance(children, string_types):
         return children
     assert isinstance(children, list)
     # Recursively transform all children and assign them to the node.
     node.children = [self.transform(child) for child in children]
     # Merge consecutive strings in the list of children.
     node.children = _merge_str(node.children)
     return node
Esempio n. 2
0
File: _ast.py Progetto: podoc/podoc
 def transform(self, d):
     if isinstance(d, str):
         return d
     c = self.get_node_children(d)
     node = ASTNode(self.get_node_name(d))
     children = self.get_transform_func(d)(c, node)
     if isinstance(children, str):
         return children
     children = children or []
     assert isinstance(children, list)
     # Recursively transform all children and assign them to the node.
     node.children = [self.transform(child) for child in children]
     # Merge consecutive strings in the list of children.
     node.children = _merge_str(node.children)
     return node
Esempio n. 3
0
 def transform_Node(self, node):
     """Call the transformation methods recursively."""
     children = self.transform_children(node)
     node.children = _merge_str(children)
     return node