<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def listing(parser, token):
 """ Tag that will obtain listing of top objects for a given category and store them in context under given name. Usage:: Parameters: ================================== ================================================ Option Description ================================== ================================================ ``limit`` Number of objects to retrieve. ``offset`` Starting with number (1-based), starts from first if no offset specified. ``category`` Category of the listing, all categories if not specified. Can be either string (tree path), or variable containing a Category object. ``children`` Include items from direct subcategories. ``descendents`` Include items from all descend subcategories. ``exclude`` Variable including a ``Publishable`` to omit. ``using`` Name of Listing Handler ro use ``result`` Store the resulting list in context under given name. ================================== ================================================ Examples:: {% listing 10 of articles.article for "home_page" as obj_list %} {% listing 10 of articles.article for category as obj_list %} {% listing 10 of articles.article for category with children as obj_list %} {% listing 10 of articles.article for category with descendents as obj_list %} {% listing 10 from 10 of articles.article as obj_list %} {% listing 10 of articles.article, photos.photo as obj_list %} """

    var_name, parameters = listing_parse(token.split_contents())
    return ListingNode(var_name, parameters)