
    )i                        S SK Jr  S SKJr  S SKJr  S SKJrJrJ	r	  SSK
JrJrJr  SSKJr  SSKJr  SS	KJr  \(       a  S S
KJr  \" SS9 " S S5      5       r\" S/ SQ5      r " S S\5      rg)    )annotations)
namedtuple)	dataclass)TYPE_CHECKINGAnyLiteral   )isMdAsciiPunctisPunctCharisWhiteSpace)	StateBase)Token)EnvType)
MarkdownItT)slotsc                  `    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S'   S\S	'   S
rS\S'   Srg
)	Delimiter   intmarkerlengthtokenendboolopencloseNzbool | Nonelevel )__name__
__module____qualname____firstlineno____annotations__r   __static_attributes__r       e/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/markdown_it/rules_inline/state_inline.pyr   r      s4     K K J 
H JKE;r%   r   Scanned)can_open	can_closer   c                  Z    \ rS rSr          S	S jrS
S jrSS jrSS jrSS jrSr	g)StateInline*   c                   Xl         X0l        X l        X@l        S /[	        U5      -  U l        SU l        [	        U R                   5      U l        SU l        SU l	        SU l
        0 U l        / U l        / U l        0 U l        SU l        SU l        g )Nr    F)srcenvmdtokenslentokens_metaposposMaxr   pendingpendingLevelcache
delimiters_prev_delimiters	backticksbackticksScanned	linkLevel)selfr/   r1   r0   	outTokenss        r&   __init__StateInline.__init__+   s     9=Y8O$((m
 &(
 ,. 8: *, % r%   c           	         U R                   R                   SU R                   SU R                   S[	        U R
                  5       S3$ )Nz(pos=[z of z	], token=))	__class__r   r5   r6   r3   r2   )r?   s    r&   __repr__StateInline.__repr__L   sD    ~~&&'TXXJd4;;-yT[[9I8J!M	
r%   c                    [        SSS5      nU R                  Ul        U R                  Ul        U R
                  R                  U5        SU l        U$ )Ntextr.   r   )r   r7   contentr8   r   r2   append)r?   r   s     r&   pushPendingStateInline.pushPendingR   sF    fb!$''5!r%   c                2   U R                   (       a  U R                  5         [        XU5      nSnUS:  a4  U =R                  S-  sl        U R                  R                  5       U l        U R                  Ul        US:  aO  U =R                  S-  sl        U R                  R                  U R                  5        / U l        SU R                  0nU R                  U l        U R                  R                  U5        U R                  R                  U5        U$ )zLPush new token to "stream".
If pending text exists - flush it as text token
Nr      r:   )r7   rL   r   r   r;   popr:   rK   r8   r2   r4   )r?   ttypetagnestingr   
token_metas         r&   pushStateInline.pushZ   s     <<e'*
Q;JJ!OJ"33779DOjjQ;JJ!OJ!!((9 DO&8J JJ5!
+r%   c                8   UnU R                   nU R                  U   nUS:  a  U R                  US-
     OSnX4:  a2  U R                  U   U:X  a  US-  nX4:  a  U R                  U   U:X  a  M  X1-
  nX4:  a  U R                  U   OSn[        [        U5      5      =(       d    [	        U5      n	[        [        U5      5      =(       d    [	        U5      n
[        [        U5      5      n[        [        U5      5      nU=(       d    U
=(       a    U=(       d    U	(       + (       + nU=(       d    U	=(       a    U=(       d    U
(       + (       + nU=(       a    U=(       d    U(       + =(       d    U	nU=(       a    U=(       d    U(       + =(       d    U
n[        UUU5      $ )a  
Scan a sequence of emphasis-like markers, and determine whether
it can start an emphasis sequence or end an emphasis sequence.

 - start - position to scan from (it should point at a valid marker);
 - canSplitWord - determine if these markers can be found inside a word

r   rO    )r6   r/   r
   ordr   r   r'   )r?   startcanSplitWordr5   maximumr   lastCharcountnextCharisLastPunctCharisNextPunctCharisLastWhiteSpaceisNextWhiteSpaceleft_flankingright_flankingr(   r)   s                    r&   
scanDelimsStateInline.scanDelimsw   so    ++% +0!)488EAI&m 71HC m 7  %(M488C=s(X7P;x;P(X7P;x;P'H6'H6  OM)9)L_$M

  OM)9)L_$M

 ! 
C/CO 	 # 
B.B? 	 xE22r%   )r;   r<   r=   r9   r:   r0   r   r>   r1   r7   r8   r5   r6   r/   r2   r4   N)
r/   strr1   r   r0   r   r@   zlist[Token]returnNone)ri   rh   )ri   r   )rQ   rh   rR   rh   rS   zLiteral[-1, 0, 1]ri   r   )rZ   r   r[   r   ri   r'   )
r   r    r!   r"   rA   rF   rL   rU   rf   r$   r   r%   r&   r+   r+   *   sD    &-4AL	B
:.3r%   r+   N)
__future__r   collectionsr   dataclassesr   typingr   r   r   common.utilsr
   r   r   rulerr   r   r   utilsr   markdown_itr   r   r'   r+   r   r%   r&   <module>rs      sd    " " ! . . D D   &   , Y C
D{3) {3r%   