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
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
def transform_Node(self, node): """Call the transformation methods recursively.""" children = self.transform_children(node) node.children = _merge_str(children) return node