a
    Yc                     @   sN   d Z ddlZdd Zdd Zdd Zd	d
 Zdd Zdd ZG dd dZdS )z!
Inline tokenizer for mistletoe.
    Nc                 C   sb   |^ }}t | ||}g }|rN|d }|dd  D ]}t|||}q2|| t|dt| | |S )Nr      )find_tokenseval_tokensappendmake_tokenslen)stringtoken_typesfallback_tokentokenstoken_bufferprevcurr r   Y/var/www/html/MEGASTUDIO_platform/lib/python3.9/site-packages/mistletoe/span_tokenizer.pytokenize   s    

r   c                 C   sF   g }|D ]4}| | D ]$}|t| | || || qqt|S N)findr   
ParseTokenstartendsorted)r   r	   r
   r   
token_typemr   r   r   r      s
    $r   c                 C   sZ   t | |}|dkr ||  |S |dkr@| jj|jjkr<| S |S |dkrV| | | S | S )Nr   r      )relationr   cls
precedenceappend_child)xyr   rr   r   r   r      s    


r   c                 C   sd   | j d }t||}|dkr*| j | n6|dkrN|jj|jjk rN|| j d< n|dkr`|| d S )Nr   r   r   )childrenr   r   r   r   r   )parentchildZ
last_childr!   r   r   r   eval_new_child)   s    

r&   c                 C   sL   | j |jkrdS | j |j krH| j|jkr8| j|j kr8dS | j|jkrHdS dS )Nr   r      r   )r   r   parse_start	parse_end)r   r    r   r   r   r   4   s    r   c           	      C   s   g }|}| D ]X}|j |krD|t|||j  }|d urD|| | }|d ur^|| |j}q||kr||t|||  |S r   )r   htmlunescaper   maker   )	r   r   r   r   r
   resultZprev_endtokentr   r   r   r   ?   s    


r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )r   c                 C   sJ   || _ || _| |j| _||j| _|| _|| _|| _|| _g | _	d S r   )
r   r   parse_groupr(   r)   matchr   r   r
   r#   )selfr   r   r1   r   r   r
   r   r   r   __init__Q   s    zParseToken.__init__c                 C   s*   | j jr&| js| j| n
t| | d S r   )r   parse_innerr#   r   r&   )r2   r%   r   r   r   r   \   s    zParseToken.append_childc                 C   sD   | j js|  | jS t| j| j| j| j| j}|  | j}||_|S r   )	r   r4   r1   r   r#   r(   r)   r   r
   )r2   r#   r.   r   r   r   r,   c   s    zParseToken.makec                 C   s   | j |j k S r   )r   )r2   otherr   r   r   __lt__k   s    zParseToken.__lt__c                 C   s*   d}| | j| j| j| jt| jj| jS )Nz?<ParseToken span=({},{}) parse_span=({},{}) cls={} children={}>)	formatr   r   r(   r)   reprr   __name__r#   )r2   patternr   r   r   __repr__n   s
    zParseToken.__repr__N)r9   
__module____qualname__r3   r   r,   r6   r;   r   r   r   r   r   P   s
   r   )	__doc__r*   r   r   r   r&   r   r   r   r   r   r   r   <module>   s   