py_ast.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:vizgen 作者: uva-graphics 项目源码 文件源码
def add_line_info(root_node):
    """
    Add lineno attribute for all nodes at and under root_node, recursively.
    """
    class AddLineNumbers(BottomUpVisitor):
        def __init__(self):
            BottomUpVisitor.__init__(self, strict_line_order=True, make_unique=True)
        def visit_one_node(self, node, lineno=None):
#            print(node, lineno, getattr(node, 'lineno', None))
            if not hasattr(node, 'lineno'):
                node.lineno = lineno
            else:
                if node.lineno != lineno:
                    print(node, lineno, node.lineno)
                    print(astor.dump(root_node))
                    assert False
            BottomUpVisitor.visit_one_node(self, node, lineno)
    AddLineNumbers().visit(root_node)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号