def getSubtreeContext(super, sub):
if not isinstance(super, ast.AST):
return None
for field in super._fields:
attr = getattr(super, field)
if type(attr) == list:
for i in range(len(attr)):
if compareASTs(attr[i], sub, checkEquality=True) == 0:
return (attr, i, attr[i])
else:
tmp = getSubtreeContext(attr[i], sub)
if tmp != None:
return tmp
else:
if compareASTs(attr, sub, checkEquality=True) == 0:
return (super, field, attr)
else:
tmp = getSubtreeContext(attr, sub)
if tmp != None:
return tmp
return None
评论列表
文章目录