def findVariantNodes(node): variantNodes = treeutil.findVariablePrefix(node, "qx.core.Environment") for variantNode in variantNodes: if not variantNode.hasParentContext("call/operand"): continue variantMethod = treeutil.selectNode(variantNode, "identifier[4]/@name") if variantMethod in InterestingEnvMethods: yield variantNode else: continue
def isEnvironmentCall(callNode): if callNode.type != "call": return False operandNode = treeutil.selectNode(callNode, "operand") environNodes = treeutil.findVariablePrefix(operandNode, "qx.core.Environment") if len(environNodes) != 1: return False environMethod = treeutil.selectNode(environNodes[0], "identifier[4]/@name") if environMethod in InterestingEnvMethods: return True return False