
    i'!              	       "   S SK r S SKr " S S5      r " S S5      r " S S5      r " S S	\5      rS
 r " S S\5      r	S r
S rS rSSSSSSSS.R                  rS\" \" \\" S5      5      5      -   rS rS r\" 5       rS rS rS S jrS rg)!    Nc                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)UnicodeLiteralBuilder
   zAssemble a unicode string.
    c                     / U l         g Ncharsselfs    ^/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/Cython/Compiler/StringEncoding.py__init__UnicodeLiteralBuilder.__init__   s	    
    c                     [        U[        5      (       d   S[        U5       35       eU R                  R	                  U5        g )NzExpected str, got )
isinstancestrtyper	   appendr   
characterss     r   r   UnicodeLiteralBuilder.append   s:    *c**S.@jAQ@R,SS*

*%r   c                 L    U R                   R                  [        U5      5        g r   )r	   r   chrr   char_numbers     r   append_charval$UnicodeLiteralBuilder.append_charval   s    

3{+-r   c                 &    U R                  U5        g r   )r   r   r   escape_strings      r   append_uescape$UnicodeLiteralBuilder.append_uescape   s    K(r   c                 J    [        SR                  U R                  5      5      $ )N )EncodedStringjoinr	   r
   s    r   	getstringUnicodeLiteralBuilder.getstring   s    RWWTZZ011r   c                 &    S U R                  5       4$ r   r'   r
   s    r   
getstrings UnicodeLiteralBuilder.getstrings   s    dnn&''r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r!   r'   r+   __static_attributes__ r   r   r   r   
   s%    &.)2(r   r   c                   B    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)BytesLiteralBuilder!   z*Assemble a byte string or char value.
    c                     / U l         Xl        g r   r	   target_encodingr   r9   s     r   r   BytesLiteralBuilder.__init__$   s    
.r   c                     [        U[        5      (       a  UR                  U R                  5      n[        U[        5      (       d   [        [        U5      5      5       eU R                  R                  U5        g r   )r   r   encoder9   bytesr   r	   r   r   s     r   r   BytesLiteralBuilder.append(   sY    j#&&#**4+?+?@J*e,,Cc$z2B.CC,

*%r   c                 j    U R                   R                  [        U5      R                  S5      5        g )N
ISO-8859-1)r	   r   r   r=   r   s     r   r   "BytesLiteralBuilder.append_charval.   s$    

3{+22<@Br   c                 &    U R                  U5        g r   )r   r   s      r   r!   "BytesLiteralBuilder.append_uescape1   s    M"r   c                 `    [        SR                  U R                  5      U R                  5      $ )Nr   )bytes_literalr&   r	   r9   r
   s    r   r'   BytesLiteralBuilder.getstring4   s"    SXXdjj143G3GHHr   c                 "    U R                  5       $ r   r*   r
   s    r   getcharBytesLiteralBuilder.getchar8   s    ~~r   c                 &    U R                  5       S 4$ r   r*   r
   s    r   r+   BytesLiteralBuilder.getstrings<   s     $''r   r8   N)r-   r.   r/   r0   r1   r   r   r   r!   r'   rI   r+   r2   r3   r   r   r5   r5   !   s,    /&C#I (r   r5   c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
StrLiteralBuilder@   zDAssemble both a bytes and a unicode representation of a string.
    c                 B    [        U5      U l        [        5       U l        g r   )r5   _bytesr   _unicoder:   s     r   r   StrLiteralBuilder.__init__C   s    +O<-/r   c                 p    U R                   R                  U5        U R                  R                  U5        g r   )rQ   r   rR   r   s     r   r   StrLiteralBuilder.appendG   s&    :&Z(r   c                 p    U R                   R                  U5        U R                  R                  U5        g r   )rQ   r   rR   r   s     r   r    StrLiteralBuilder.append_charvalK   s&    "";/$$[1r   c                 p    U R                   R                  U5        U R                  R                  U5        g r   )rQ   r   rR   r   r   s      r   r!    StrLiteralBuilder.append_uescapeO   s&    =)$$[1r   c                 j    U R                   R                  5       U R                  R                  5       4$ r   )rQ   r'   rR   r
   s    r   r+   StrLiteralBuilder.getstringsS   s'    %%')@)@)BCCr   )rQ   rR   N)r-   r.   r/   r0   r1   r   r   r   r!   r+   r2   r3   r   r   rN   rN   @   s!    0)22Dr   rN   c                   F    \ rS rSrSrS rS rS r\S 5       r	S r
S rS	rg)
r%   W   Nc                     U $ r   r3   r   memos     r   __deepcopy__EncodedString.__deepcopy__]       r   c                 V    U R                   c   eU R                  U R                   5      $ r   encodingr=   r
   s    r   
byteencodeEncodedString.byteencode`   s%    }}((({{4==))r   c                 B    U R                   b   eU R                  S5      $ )NzUTF-8re   r
   s    r   
utf8encodeEncodedString.utf8encoded   s!    }}$$${{7##r   c                     U R                   S L $ r   )rf   r
   s    r   
is_unicodeEncodedString.is_unicodeh   s    }}$$r   c                 6    [        U R                  5       S5      $ )Nutf8)rF   rj   r
   s    r   as_utf8_stringEncodedString.as_utf8_stringl   s    T__.77r   c                     U R                   c   U R                  5       nUR	                  5       $ [        U R                  5       U R                   5      nUR	                  5       $ r   )rf   rq   rF   rg   as_c_string_literal)r   ss     r   rt   !EncodedString.as_c_string_literalo   sS    == ##%A $$&& doo/?A$$&&r   r3   )r-   r.   r/   r0   rf   ra   rg   rj   propertyrm   rq   rt   r2   r3   r   r   r%   r%   W   s6     H*$ % %8'r   r%   c                 R    [        [        U 5       H  nSU::  d  M  US::  d  M    g   g)z
Check if the unicode string contains lone surrogate code points
on a CPython platform with wide (UCS-4) or narrow (UTF-16)
Unicode, i.e. characters that would be spelled as two
separate code units on a narrow platform, but that do not form a pair.
   i  TF)mapord)ustringcs     r   string_contains_lone_surrogatesr~   x   s*     gQ;1;	 
 r   c                   :    \ rS rSrSrS rS rS rS rSr	S r
S	rg)
BytesLiteral   Nc                     U $ r   r3   r_   s     r   ra   BytesLiteral.__deepcopy__   rc   r   c                     [        U 5      $ r   )r>   r
   s    r   rg   BytesLiteral.byteencode   s    T{r   c                      SU -  5       e)Nz this is not a unicode string: %rr3   r
   s    r   rj   BytesLiteral.utf8encode   s    ?84??ur   c                 $    U R                  S5      $ )zSFake-decode the byte string to unicode to support %
formatting of unicode strings.
rA   )decoder
   s    r   __str__BytesLiteral.__str__   s     {{<((r   Fc                 4    [        [        U 5      5      nSU-  $ )Nz"%s")split_string_literalescape_byte_string)r   values     r   rt    BytesLiteral.as_c_string_literal   s    $%7%=>~r   r3   )r-   r.   r/   r0   rf   ra   rg   rj   r   rm   rt   r2   r3   r   r   r   r      s(    H@) Jr   r   c                 V    [        U [        5      (       d   e[        U 5      n Xl        U $ r   )r   r>   r   rf   ru   rf   s     r   rF   rF      s(    aQAJHr   c                 h    [        U [        [        45      (       d   e[        U 5      n Ub  Xl        U $ r   )r   r   r>   r%   rf   r   s     r   encoded_stringr      s3    a#u&&&&aA
Hr   c                 X    [        U [        5      (       a  [        X5      $ [        X5      $ r   )r   r>   rF   r   r   s     r   encoded_string_or_bytes_literalr      s%    !UQ))a**r   
	)z\az\bz\fz\nz\rz\tz\v)\z??"    c           	          U S;   a  [        U 5      SS $ U S:X  a  gU S:X  a  gSR                  U  Vs/ s H  nS[        U5      S	 3PM     sn5      $ s  snf )
Nz
	   r   z\"r   \\r$   03o)reprr&   r{   )ru   r}   s     r   _to_escape_sequencer      s]    H}Awq}	
c	
d ww151a"SVCL)15665s   Ac                    ^^^ / n 0 m[          Hu  nSR                  U Vs/ s H  nSUR                  SS5      -  PM     sn5      nU R                  U5        [	        U5      R                  S5      TUR                  S5      '   Mw     [        R                  " SSR                  U 5      -  R                  S5      5      R                  mU4S jmUU4S	 jnU$ s  snf )
Nr$   z[%s]r   r   ASCIIz(%s)|c                 ,   > TU R                  S5         $ )Nr   )group)mreplacementss    r   replace_specials2_build_specials_replacer.<locals>.replace_specials   s    AGGAJ''r   c                    > T" TU 5      $ r   r3   )ru   r   subs    r   replace)_build_specials_replacer.<locals>.replace   s    #Q''r   )	
_c_specialr&   r   r   r   r=   recompiler   )subexpsspecialr}   regexpr   r   r   r   s        @@@r   _build_specials_replacerr      s    GLGLGq&199T6#::GLMv0CG0L0S0ST[0\W^^G,-  **fsxx0088A
B
F
FC((N Ms   C
c                     U R                  S5      n U S;   a  [        U 5      SS $ U S:X  a  g[        U 5      nUS:  d  US:  a  S	U-  $ U $ )
NrA   z
	\r   r   'z\'r      z\x%02X)r   r   r{   )r}   ns     r   escape_charr      sX    	AJAwq}	
cAA2vc1} r   c                    [        U 5      n  U R                  S5      $ ! [         a     Of = f[        5       nUR                  UR
                  p2U  H  nUS:  a  U" SU-  5        M  U" U5        M      UR                  S5      $ )zEscape a byte string so that it can be written into C code.
Note that this returns a Unicode string instead which, when
encoded as ASCII, will result in the correct byte sequence
being written.
r   r   s   \%03o)_replace_specialsr   UnicodeDecodeError	bytearrayr   extend)ru   s_newr   r   bs        r   r   r      s     	!Axx   KE\\5<<F89q=!1I	 
 <<  s    
++c                    [        U 5      U:  a  U $ Sn/ nU[        U 5      :  a  X!-   n[        U 5      US-
  :  aW  SXS-
  U ;   aL  USXS-
  U R                  S5      -
  -  nXS-
     S:X  a%  US-  nXB:X  a  X!-   US-  -
  S-
  nOXS-
     S:X  a  M%  UR                  XU 5        UnU[        U 5      :  a  M  SR                  U5      $ )Nr      r   r      z"")lenfindr   r&   )ru   limitstartchunksends        r   r   r     s    
1v~c!fn-C1vA~$!E#,"6q1U3<,,T222Ah$&1HC|#muqy9A= Ah$& MM!#,'E c!fn yy  r   c                    [        [        [        U 5      5      n U R                  S5        / U p!U  HU  nUS:  a;  [	        US-
  S5      u  pEUR                  US-   5        UR                  US-   5        MD  UR                  U5        MW     X:X  a  / nSR                  [        [        U5      5      SR                  [        [        U5      5      4$ )zBCreate Py_UNICODE[] representation of a given unicode string.
    r   i   i   ry   i   ,)listrz   r{   r   divmodr&   r   )r   utf16utf32
code_pointhighlows         r   encode_pyunicode_stringr     s     c#z*+Jaz5 
 zG3T:IDLL'LLv&LL$ ! ~88CUO$chhs3&???r   )i  )r   sysr   r5   rN   r   r%   r~   r>   r   rF   r   r   getchar_from_escape_sequencetuplerz   r   ranger   r   r   r   r   r   r   r   r3   r   r   <module>r      s    
 
( (.( (>D D.'C 'B5 4+  
c  s3b	':!;;
	7 -. !(!,@r   