<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def ifancestor(parser, token):
 """ Returns the contents of the tag if the provided path consitutes the base of the current pages path. There are two ways to provide arguments to this tag. Firstly one may provide a single argument that starts with a forward slash. e.g. In this case the provided path will be used directly. Alternatively any arguments accepted by the standard "url" tag may be provided. They will be passed to the url tag and the resultant path will be used. e.g. Ultimately the provided path is matched against the path of the current page. If the provided path is found at the root of the current path it will be considered an anscestor, and the contents of this tag will be rendered. """

    # Grab the contents between
    contents = parser.parse(('endifancestor',))
    parser.delete_first_token()

    # If there is only one argument (2 including tag name)
    # parse it as a variable
    bits = token.split_contents()
    if len(bits) == 2:
        arg = parser.compile_filter(bits[1])
    else:
        arg = None

    # Also pass all arguments to the original url tag
    url_node = url(parser, token)

    return AncestorNode(url_node, arg=arg, contents=contents)