
    dd:                    n    d dl mZ d dlmZ ddlmZ ddlmZ ddlm	Z	 erd dl
mZ  G d d	e          Zd
S )    )annotations)TYPE_CHECKING   )isSpace)	StateBase)Token)
MarkdownItc                  `    e Zd Z	 d$d%d
Zd Zd&dZd'dZd(dZd)dZd*dZ	d+dZ
d,dZd-d#ZdS ).
StateBlockNsrcstrmdr	   tokenslist[Token]srcCharCodetuple[int, ...] | Nonec                ~   ||| _         || _        n|| _        || _        || _        || _        g | _        g | _        g | _        g | _	        g | _
        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d}dx}x}x}	}
t)          | j                  }t+          | j                  D ]\  }}|s.t-          |          r|	dz  }	|dk    r|
d|
dz  z
  z  }
n|
dz  }
3d	}|d
k    s	||dz
  k    r|d
k    r|dz  }| j                            |           | j                            |           | j                            |	           | j	                            |
           | j
                            d           d}d}	d}
|dz   }| j                            |           | j                            |           | j                            d           | j	                            d           | j
                            d           t)          | j                  dz
  | _        d S )Nr   Froot    	      T
   )_srcr   r   r   envr   bMarkseMarkstShiftsCountbsCount	blkIndentlinelineMaxtightddIndent
listIndent
parentTypelevelresultlen	enumerater   append)selfr   r   r   r   r   indent_foundstartposindentoffsetlength	characters                Clib/python3.11/site-packages/markdown_it/rules_block/state_block.py__init__zStateBlock.__init__   s{    "DI*DDH    	
 !
  ())))fvTX'(899 	  	 NC 
(9%% 	(aKF D((!fqj.0!#'LD  C6A:$5$5$$1HC""5)))""3'''""6***""6***##A&&&$a 	6"""6"""11A4;''!+    c           	     j    | j         j         d| j         d| j         dt	          | j                   dS )Nz(line=z,level=z,tokens=))	__class____name__r#   r)   r+   r   )r.   s    r6   __repr__zStateBlock.__repr__v   s\    ~& O OYO O'+zO O;>t{;K;KO O O	
r8   ttypetagnestingintreturnr   c                    t          |||          }d|_        |dk     r| xj        dz  c_        | j        |_        |dk    r| xj        dz  c_        | j                            |           |S )zPush new token to "stream".Tr   r   )r   blockr)   r   r-   )r.   r>   r?   r@   tokens        r6   pushzStateBlock.push|   sn    eS'**Q;;JJ!OJJjQ;;JJ!OJJ5!!!r8   r#   boolc                V    | j         |         | j        |         z   | j        |         k    S ).)r   r   r   )r.   r#   s     r6   isEmptyzStateBlock.isEmpty   s'    D!DK$55$+d:KKKr8   from_posc                    || j         k     rM	 | j        |         | j        |         z   | j        |         k     rn!n# t          $ r Y nw xY w|dz  }|| j         k     M|S )rI   r   )r$   r   r   r   
IndexError)r.   rK   s     r6   skipEmptyLineszStateBlock.skipEmptyLines   s    %%K)DK,AAT[F       MH %% s   *9 
AAr1   c                    |t          | j                  k     r8t          | j        |                   sn|dz  }|t          | j                  k     8|S )z Skip spaces from given position.r   )r+   r   r   r   )r.   r1   s     r6   
skipSpaceszStateBlock.skipSpaces   sU    CMM!!4+C011 1HC CMM!! 
r8   minimumc                v    ||k    r|S ||k    r*|dz  }t          | j        |                   s|dz   S ||k    *|S )z+Skip spaces from given position in reverse.r   )r   r   )r.   r1   rQ   s      r6   skipSpacesBackzStateBlock.skipSpacesBack   sU    '>>JGmm1HC4+C011 Qw Gmm 
r8   codec                    |t          | j                  k     r/| j        |         |k    rn|dz  }|t          | j                  k     /|S )z$Skip char codes from given position.r   )r+   r   r   )r.   r1   rT   s      r6   	skipCharszStateBlock.skipChars   sP    CMM!!$,,1HC CMM!! 
r8   c                d    ||k    r|S ||k    r!|dz  }|| j         |         k    r|dz   S ||k    !|S )z0Skip char codes reverse from given position - 1.r   )r   )r.   r1   rT   rQ   s       r6   skipCharsBackzStateBlock.skipCharsBack   sP    '>>JGmm1HCt',,,Qw Gmm 
r8   beginendr2   
keepLastLFc                ^   |}||k    rdS dg||z
  z  }d}||k     rd}| j         |         x}	}
|dz   |k     s|r| j        |         dz   }n| j        |         }|
|k     rt||k     rn| j        |
         }t          |          r&|dk    r|d|| j        |         z   dz  z
  z  }n!|dz  }n|
|	z
  | j        |         k     r|dz  }nn|
dz  }
|
|k     r||k     n||k    rd||z
  z  | j        |
|         z   ||dz
  <   n| j        |
|         ||dz
  <   |dz  }|dz  }||k     d                    |          S )zCut lines range from source.r   r   r   r   r    )r   r   r   r   r!   r   r   join)r.   rY   rZ   r2   r[   r#   queuei
lineIndent	lineStartfirstlastchs                r6   getLineszStateBlock.getLines   s   C<<2e$SjjJ $D 11Iax#~~~{4(1,{4(4<<j6&9&9%e,2;; Tzz"a:T8J+Ja*O&OO

"a

Y&T):::!OJJ
 4<<j6&9&9 F"" !$zF': ;txd
?SSa!e#xd
3a!eAIDFA; Sjj> wwu~~r8   )N)r   r   r   r	   r   r   r   r   )r>   r   r?   r   r@   rA   rB   r   )r#   rA   rB   rG   )rK   rA   rB   rA   )r1   rA   rB   rA   )r1   rA   rQ   rA   rB   rA   )r1   rA   rT   rA   rB   rA   )r1   rA   rT   rA   rQ   rA   rB   rA   )
rY   rA   rZ   rA   r2   rA   r[   rG   rB   r   )r<   
__module____qualname__r7   r=   rF   rJ   rN   rP   rS   rV   rX   rf    r8   r6   r   r      s         /3f, f, f, f, f,P
 
 

 
 
 
L L L L               ( ( ( ( ( (r8   r   N)
__future__r   typingr   common.utilsr   rulerr   rE   r   markdown_it.mainr	   r   ri   r8   r6   <module>ro      s    " " " " " "             " " " " " "             ,++++++X X X X X X X X X Xr8   