'Traverse this AST subtree until either a Variable or FunctionCall node
is found...'

def _parse_me(self, node, scope):

    vardef = None
    for node in NodeRep.parse(node):
        if (type(node) is phpast.Variable):
            varname = node.name
            scopevar = scope.get_var(varname)
            vardef = VariableDef((varname + '__$temp_anon_var$_'), node.lineno, scope)
            vardef.var_node = node
            vardef.parent = scopevar
            break
        elif (type(node) is phpast.FunctionCall):
            vardef = VariableDef((node.name + '_funvar'), node.lineno, scope)
            fc = FuncCall(node.name, node.lineno, node, scope)
            vardef.parent = ((fc.params and fc.params[0].var) or None)
            vulnty = FuncCall.get_vulnty_for_sec(fc.name)
            if vulnty:
                vardef._safe_for.append(vulnty)
            break
    return vardef
