def is_before(node1, node2):
"""
checks if definately appears before node2
"""
current = node2
while current is not None:
try:
if current.parent == node1.parent:
for field, value in ast.iter_fields(node1.parent):
if value == current or value == node1:
return False
elif isinstance(value, list) and current in value and node1 in value:
list_index1 = value.index(node1)
list_index2 = value.index(current)
if list_index2 > list_index1:
return True
except:
pass
current = current.parent
return False
评论列表
文章目录