U
    祡c<                     @   sP   d dl mZmZ d dlmZ d dlZd dlmZ dddZdd	 Z	dd
dZ
dS )    )absolute_importunicode_literals)strN)is_containerFc                 C   s   g }|   D ]\}}d|ji}|jr.|j|d< |jr>|j|d< |jrN|j|d< |jr^|j|d< |jrn|j|d< |jr~|j|d< t|rg |d< |rt	|d	kr|d
 d r|d
 d 
| q|g|d
 d< q|
| q|S )zWalk the complete AST, only returning needed data.

    This removes circular references and allows us to output
    JSON.
    typeliteralstring_contenttitleinfodestination	list_datachildrenr   )walkertr   r   r	   r
   r   r   r   lenappend)objtopnodeaZsubnodeZenteredrep r   3/tmp/pip-unpacked-wheel-4s07asnf/commonmark/dump.pyprepare   s2     





r   c                 C   s   t | }tj|dddS )z6Output AST in JSON form, this is destructive of block.   T)indent	sort_keys)r   jsondumps)r   preparedr   r   r   dumpJSON2   s    r    c                 C   s  |rd| d nd}t |d | j d  | jdksNt d| d | jpHd  | jdksrt d| d | jpld  | jdkst d| d | jpd  | jrt d| d	 t| j  | jrt d| d
 t| j  | jrt d| d t| j  | j	dkst d| d | j	pd  | jdksFt d| d | jp@d  | j
dksnt d| d | j
phd  | jdrt d| d  t d| d | jd  | jdrt d| d | jd   | jdrt d| d t| jd  | jdr(t d| d | jd  | jdrVt d| d t| jd  | jdrt d| d t| jd  | jrt d| d  |  }| }|dk	r|dkrt|d |d  d!d" | }qdS )#zPrint out a block/entire AST.	z->  []zTitle: zInfo: zDestination: zOpen: zLast line blank: zSourcepos: zString content: z	Literal: r   zList Data: z		z	[type] = Zbullet_charz[bullet_char] = startz
[start] = 	delimiterz[delimiter] = paddingz[padding] = Zmarker_offsetz[marker_offset] = z	Children:NFnode   T)r   )printr   r	   r
   r   Zis_openr   Zlast_line_blankZ	sourceposr   r   r   getr   nxtdumpAST)r   indr   ZindCharr   r,   r   r   r   r-   8   s|    








r-   )F)r   F)
__future__r   r   builtinsr   r   Zcommonmark.noder   r   r    r-   r   r   r   r   <module>   s   
*