
    i|b              
          S SK r \ R                  " \\\\\\\S9  S SKrS SKrS SKJr  S SKJr  SSK	J
r
  SSKJr  SSKJr  S	S
KJrJrJrJrJr  S	SKJrJrJrJr  S	SKJr  S rS rS rSrSq S r!/ SQr"\"/ SQ-   r# " S S5      r$S r% " S S5      r& " S S\&5      r' " S S\&5      r( " S S\5      r)\S\)4S j5       r* " S S5      r+ " S S 5      r,g)!    N)make_lexiconlexiconprint_functionerrorwarningosplatform)	normalize)contextmanager   )Utils)Scanner)UnrecognizedInput   )r   r   hold_errorsrelease_errorsCompileError)any_string_prefixft_string_prefixesr   IDENT)r   c                  8    [         (       d
  [        5       q [         $ N)r   r        X/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/Cython/Compiler/Scanning.pyget_lexiconr       s    7.Nr   )globalnonlocaldefclassprintdelpassbreakcontinuereturnraiseimportexectryexceptfinallywhileifelifelseforinassertandornotislambdafromyieldwith)	includectypedefcdefcpdefcimportDEFIFELIFELSEc                   <    \ rS rSrS
S jrS rS rS rS rS r	S	r
g)CompileTimeScope9   Nc                     0 U l         Xl        g r   entriesouter)selfrK   s     r   __init__CompileTimeScope.__init__;   s    
r   c                      X R                   U'   g r   rJ   )rL   namevalues      r   declareCompileTimeScope.declare?   s    "Tr   c                 :    U R                   R                  U5        g r   )rJ   updaterL   others     r   rV   CompileTimeScope.updateB   s    E"r   c                      U R                   U   $ r   rP   rL   rQ   s     r   lookup_hereCompileTimeScope.lookup_hereE   s    ||D!!r   c                     XR                   ;   $ r   rP   r[   s     r   __contains__CompileTimeScope.__contains__H   s    ||##r   c                      U R                  U5      $ ! [         a(    U R                  nU(       a  UR                  U5      s $ e f = fr   )r\   KeyErrorrK   lookup)rL   rQ   rK   s      r   rc   CompileTimeScope.lookupK   sE    	##D)) 	JJE||D))	s    .AArI   r   )__name__
__module____qualname____firstlineno__rM   rS   rV   r\   r_   rc   __static_attributes__r   r   r   rF   rF   9   s     ##"$r   rF   c                     [        5       n Sn[        U[        R                  " 5       5       H  u  p#U R	                  X#5        M     SS KnSnU H  nU R	                  U[        XB5      5        M      SSKJn  U R	                  SU5        U R	                  S[        5        U R	                  S[        5        U R	                  S[        5        [        U 5      nU$ )	N)UNAME_SYSNAMEUNAME_NODENAMEUNAME_RELEASEUNAME_VERSIONUNAME_MACHINEr   )*FalseTrueabsallanyasciibinbool	bytearraybyteschrcomplexdictdivmod	enumeratefilterfloatformat	frozensethashhexintlenlistmapmaxminnextoctordpowrangereprreversedroundsetslicesortedstrsumtuplezip)reducer   unicodelongxrange)rF   r   r	   unamerS   builtinsgetattr	functoolsr   r   r   r   )benvnamesrQ   rR   r   r   denvs          r   initial_compile_time_envr   V   s    DbE5(.."23T! 4
E T7823  !LL6"LLC LLLL5!D!DKr   c                   h    \ rS rSrSrSrSrSrSrSr	S r
S rS	 rS
 rS rS rS rS rS rS rSrg)SourceDescriptory   z4
A SourceDescriptor should be considered immutable.
NFpyx c                      er   r   rL   s    r   __str__SourceDescriptor.__str__   s    ur   c                     [         R                  R                  U5      u  p#US;   =(       a    USS  =(       d    SU l        g )N)z.pyxz.pxdz.pyr   r   )r   pathsplitext
_file_type)rL   filenamerQ   exts       r   set_file_type_from_name(SourceDescriptor.set_file_type_from_name   s5    GG$$X.	!88DSWMr   c                      U R                   S;   $ )N)r   pxdr   r   s    r   is_cython_fileSourceDescriptor.is_cython_file   s    .00r   c                      U R                   S:H  $ )Npyr   r   s    r   is_python_fileSourceDescriptor.is_python_file   s    $&&r   c                 ~    U R                   c%  U R                  5       R                  SS5      U l         U R                   $ )N\/)_escaped_descriptionget_descriptionreplacer   s    r   get_escaped_description(SourceDescriptor.get_escaped_description   s:    $$, )-(<(<(>(F(FtS(QD%(((r   c                 V     U R                   UR                   :  $ ! [         a     gf = fNF	_cmp_nameAttributeErrorrW   s     r   __gt__SourceDescriptor.__gt__   ,    	>>EOO33 		    
((c                 V     U R                   UR                   :  $ ! [         a     gf = fr   r   rW   s     r   __lt__SourceDescriptor.__lt__   r   r   c                 V     U R                   UR                   :*  $ ! [         a     gf = fr   r   rW   s     r   __le__SourceDescriptor.__le__   s,    	>>U__44 		r   c                     U $ r   r   r   s    r   __copy__SourceDescriptor.__copy__       r   c                     U $ r   r   )rL   memos     r   __deepcopy__SourceDescriptor.__deepcopy__   r   r   )r   r   )re   rf   rg   rh   __doc__r   in_utility_coder   r   r   r   r   r   r   r   r   r   r   r   r   ri   r   r   r   r   r   y   sV     HOJIN1')r   r   c                   Z    \ rS rSrSrSS jrSS jrSS jrS rS r	S	 r
S
 rS rS rSrg)FileSourceDescriptor   a  
Represents a code source. A code source is a more generic abstraction
for a "filename" (as sometimes the code doesn't come from a file).
Instances of code sources are passed to Scanner.__init__ as the
optional name argument and will be passed back when asking for
the position()-tuple.
Nc                    [         R                  " U5      nXl        U=(       d    UU l         [        R
                  R                  U R                  5      U l        [        R
                  R                  S5      [        R                  -   nUR                  U5      (       a  U[        U5      S  OUU l        U R                  U5        Xl        0 U l        g ! [         a    U R                  U l         Nf = f)N.)r   decode_filenamer   path_descriptionr   r   relpath_short_path_description
ValueErrorabspathsep
startswithr   	file_pathr   r   _lines)rL   r   r   workdirs       r   rM   FileSourceDescriptor.__init__   s    ((2  0 <H	A+-77??4;P;P+QD(
 ''//#&/4<4G4G4P4P#g,-0V^$$X.!  	A+/+@+@D(	As   .C C43C4c                 B   X4nU R                   R                  U5      nUb  U$ U R                  XS9 nUR                  5        Vs/ s H  ofR	                  5       PM     nnS S S 5        X0R                   ;   a  UOS U R                   U'   U$ s  snf ! , (       d  f       N5= f)N)encodingerror_handling)r   getget_file_object	readlinesrstrip)rL   r   r   keylinesflines          r   	get_linesFileSourceDescriptor.get_lines   s     ($L!!8!SWX/0{{}=}t[[]}E= T %(;;$65DC	 > TSs   BBBB
Bc                 D    [         R                  " U R                  X5      $ r   )r   open_source_filer   )rL   r   r   s      r   r   $FileSourceDescriptor.get_file_object   s    %%dmmXNNr   c                     U R                   $ r   )r   r   s    r   r   $FileSourceDescriptor.get_description   s    +++r   c                     U R                   n[        R                  " [        R                  " 5       [        R
                  R                  -   5      nUR                  U5      (       a  U[        U5      S  $ U$ r   )	r   r   r   r   getcwdr   r   r   r   )rL   r   cwds      r   get_error_description*FileSourceDescriptor.get_error_description   sR    }}##BIIK"''++$=>??3C	?"r   c                     U R                   $ r   )r   r   s    r   get_filenametable_entry,FileSourceDescriptor.get_filenametable_entry   s    ~~r   c                 b    [        U[        5      =(       a    U R                  UR                  :H  $ r   )
isinstancer   r   rW   s     r   __eq__FileSourceDescriptor.__eq__   s"    %!56Z4==ENN;ZZr   c                 ,    [        U R                  5      $ r   )r   r   r   s    r   __hash__FileSourceDescriptor.__hash__   s    DMM""r   c                      SU R                   -  $ )Nz<FileSourceDescriptor:%s>)r   r   s    r   __repr__FileSourceDescriptor.__repr__   s    *T]]::r   )r   r   r   r   r   r   r   NN)re   rf   rg   rh   r   rM   r   r   r   r  r
  r  r  r  ri   r   r   r   r   r      s6     O,[#;r   r   c                   J    \ rS rSrSrS rSS jrS r\rS r	S r
S	 rS
 rSrg)StringSourceDescriptor   zi
Instances of this class can be used instead of a filenames if the
code originates from a string object.
c                     Xl         UR                  5        Vs/ s H  o3R                  5       PM     snU l        Xl        g s  snf r   )rQ   
splitlinesr   	codelinesr   )rL   rQ   coder   s       r   rM   StringSourceDescriptor.__init__   s5    	48OO4EF4ED++-4EF Gs   ANc                     U(       d  U R                   $ U R                    Vs/ s H#  nUR                  X5      R                  U5      PM%     sn$ s  snf r   )r  encodedecode)rL   r   r   r   s       r   r    StringSourceDescriptor.get_lines   sN    >>! !%0 . KK9@@J .0 0 0s   *Ac                     U R                   $ r   rQ   r   s    r   r   &StringSourceDescriptor.get_description  s    yyr   c                     g)Nz<stringsource>r   r   s    r   r
  .StringSourceDescriptor.get_filenametable_entry  s    r   c                     [        U 5      $ r   )idr   s    r   r  StringSourceDescriptor.__hash__  s    $xr   c                 b    [        U[        5      =(       a    U R                  UR                  :H  $ r   )r  r  rQ   rW   s     r   r  StringSourceDescriptor.__eq__  s"    %!78TTYY%**=TTr   c                      SU R                   -  $ )Nz<StringSourceDescriptor:%s>r$  r   s    r   r  StringSourceDescriptor.__repr__  s    ,tyy88r   )r   r  rQ   r  )re   rf   rg   rh   r   rM   r   r   r  r
  r  r  r  ri   r   r   r   r  r     s3    0 , U9r   r  c                   <   \ rS rSr  S.S jrS rS rS rS rS r	S	 r
S
 rS rS rS rSSSSS.rS\4S jrS rS rS rS rS rS rS rS rS\4S jrS rS rS  rS! rS/S" jrS# r S0S$ jr!S0S% jr"S0S& jr#S' r$S( r%S1S)\&RN                  4S* jjr(S+ r)S, r*S-r+g)2PyrexScanneri  Nc	                    [         R                  " U [        5       XU5        UR                  5       (       a  SU l        [
        n	OSU l        [        n	U	 V
s0 s H  oU
_M     sn
U l        SU l        U(       aw  UR                  U l	        UR                  U l
        UR                  U l        UR                  U l        UR                  U l        UR                  (       a  U R                  5         OXPl	        UR                  U l
        [        5       U l        SU l        SU l        [!        UR"                  SS 5      (       a/  U R                  R%                  UR"                  R                  5        Xpl        X`l        [*        U l        S/U l        SU l        SU l        / U l        SU l        S U l        U R;                  S5        SU l        U R?                  5         g s  sn
f )	NTFr   r   compile_time_env INDENTr   ) r   rM   r   r   in_python_filepy_reserved_wordspyx_reserved_wordskeywordsasync_enabledcontextincluded_filesr2  compile_time_evalcompile_time_exprenter_asyncr   r   optionsrV   parse_commentssource_encodingtrace_scannertraceindentation_stackindentation_charbracket_nesting_levelft_string_state_stackin_ft_string_expr_prescanput_back_on_failurebeginsyr   )rL   filer   parent_scannerscoper:  rA  r@  initial_posr8  keywords              r   rM   PyrexScanner.__init__'  s   {}dkJ""$$"&D(H"'D)H9ABg')B)11DL"0"?"?D$2$C$CD!%3%E%ED"%3%E%ED"++  ""L"'"6"6D$<$>D!%&D"%&D"w(:DAA%%,,W__-M-MN,."
"# $%&"%'")*&#' 

8		G Cs   Gc                 r    UR                  5       (       d  [        SU5      nU R                  [        U5        g )NNFKC)isasciir
   producer   rL   texts     r   normalize_identPyrexScanner.normalize_identV  s'    ||~~VT*DUD!r   c                 L    U R                   (       a  U R                  SU5        g g )Ncommentline)r@  rU  rV  s     r   r[  PyrexScanner.commentline[  s    LL- r   c                 F    U R                  X!R                  SS5      5        g )N_r   )rU  r   )rL   rW  symbols      r   strip_underscoresPyrexScanner.strip_underscores_  s    V\\#r23r   c                      U R                   S   $ N)rD  r   s    r   current_levelPyrexScanner.current_levelb  s    %%b))r   c                 0    U =R                   S-  sl         U$ Nr   rF  rV  s     r   open_bracket_action PyrexScanner.open_bracket_actione      ""a'"r   c                 0    U =R                   S-  sl         U$ rh  ri  rV  s     r   close_bracket_action!PyrexScanner.close_bracket_actioni  rl  r   c                 $    U R                  U5      $ r   )rj  rV  s     r   open_brace_actionPyrexScanner.open_brace_actionm  s    ''--r   c                    US:X  d   eU R                   (       a  U R                   S   R                  5       U R                  :X  a  U R                   S   R                  5       (       d6  U =R                  S-  sl        U R                  S:X  a  U R	                  S5        U R                  U R                   S   R                  5        U R                   S   R                  5         U =R                  S-  sl        U$ )N}rd  r   r   END_FT_STRING_EXPR)rG  rF  in_format_specifierrH  rU  rJ  scanner_statepop_bracket_staterV  s     r   close_brace_actionPyrexScanner.close_brace_actionp  s    s{{&&**2.DDF$JdJdd--b1EEGG..!3.11Q6LL!56JJt11"5CCD&&r*<<>""a'"r   c                 t   U R                   (       a  U R                   S   R                  5       U R                  :X  a{  U =R                  S-  sl        U R                  S:X  a  U R                  S5        U R	                  U R                   S   R
                  5        U R                   S   R                  5         U$ )Nrd  r   r   ru  )rG  rF  rH  rU  rJ  rw  set_in_format_specifierrV  s     r   colon_actionPyrexScanner.colon_action}  s    &&**2.DDF$JdJdd**a/*--212JJt11"5CCD&&r*BBDr   c                 l    U R                   S:X  a$  U R                  S5        U R                  SS5        g g )Nr   r4  NEWLINEr   )rF  rJ  rU  rV  s     r   newline_actionPyrexScanner.newline_action  s/    %%*JJx LLB' +r   	SQ_STRING	DQ_STRING
TSQ_STRING
TDQ_STRING)'"z'''z"""rW  c                     U(       a(  US   [         ;   a  USS  nU(       a  US   [         ;   a  M  U R                  U R                  U   5        U R                  S5        g )Nr   r   BEGIN_STRING)r   rJ  string_statesrU  rV  s     r   begin_string_action PyrexScanner.begin_string_action  sP    tAw"338D tAw"33

4%%d+,^$r   c                 n    U R                  U R                  (       a  SOS5        U R                  S5        g )NFT_STRING_EXPR_PRESCANr   
END_STRING)rJ  rH  rU  rV  s     r   end_string_actionPyrexScanner.end_string_action  s&    

t/M/M+SUV\"r   c                    SU;   =(       d    SU;   nU(       aD  US   [         ;   d  US   [        ;   a*  USS  nU(       a  US   [         ;   a  M  US   [        ;   a  M*  U R                  U    SU(       a  SOS 3nU R                  R	                  [        U5      5        U R                  U5        U R                  S5        g )NrRr   r   _FTr   BEGIN_FT_STRING)r   r   r  rG  appendFTStringStaterJ  rU  )rL   rW  is_rawft_string_states       r   begin_ft_string_action#PyrexScanner.begin_ft_string_action  s    +tQ#44QCU8U8D Q#44QCU8U!//56c#R9PQ""))/*	
 	

?#&'r   c                     U R                   R                  5         U R                  U R                  (       a  SOS5        U R	                  S5        g )Nr  r   END_FT_STRING)rG  poprJ  rH  rU  rV  s     r   end_ft_string_action!PyrexScanner.end_ft_string_action  s8    ""&&(

t/M/M+SUV_%r   c                     U =R                   S-  sl         U(       dN  U R                  S   R                  U R                   5        U R                  S5        U =R                  S-  sl        U R                  S5        g )Nr   rd  r  {)rF  rG  push_bracket_staterJ  rH  rU  )rL   started_ft_string_exprs     r   #_handle_open_single_ft_string_brace0PyrexScanner._handle_open_single_ft_string_brace  s_    ""a'"%&&r*==d>X>XYJJ/0**a/*Sr   c                 |   [        U5      nSnU R                  S   R                  5       (       a  U R                  U5        US-  nSnU R                  S   R                  5       (       a   eUS-  n[	        U5       H  nU R                  SS5        M     X$S-  -  nU(       a  US:X  d   eU R                  U5        g g )NFrd  r   Tr   CHARSr  )r   rG  rv  r  r   rU  )rL   rW  len_textr  double_bracesr^  s         r   open_ft_string_brace_action(PyrexScanner.open_ft_string_brace_action  s    t9!&%%b)==??445KLMH%)"--b1EEGGGG A}%ALL#& &1_%q= =445KL r   c                 
   U R                   S   R                  5       nUb  U R                  U:  a2  U R                  SU R                  5       SS9  U R	                  SS5        g U R	                  U R                  S5      S5        g )Nrd  z/f-string or t-string: single '}' is not allowedF)posfatalrt  )rG  rF  r   get_current_scan_posrU  ry  )rL   ft_string_bracket_levels     r   $_handle_close_single_ft_string_brace1PyrexScanner._handle_close_single_ft_string_brace  s~    "&"<"<R"@"V"V"X"*d.H.HKb.b JJA--/	  
 LLc"LL005s;r   c                 |   [        U5      nU(       ab  U R                  S   R                  5       (       a@  U R                  5         US-  nU(       a$  U R                  S   R                  5       (       a  M@  US-  n[	        U5       H  nU R                  SS5        M     X#S-  -  nU(       a  U R                  5         g g )Nrd  r   r   r  rt  )r   rG  rv  r  r   rU  )rL   rW  r  r  r^  s        r   close_ft_string_brace_action)PyrexScanner.close_ft_string_brace_action  s    t9455b9MMOO557MH 455b9MMOO !A}%ALL#& &!O#557 r   c                 H    U R                  U5        U R                  S5        g )NzUnclosed string literal)r  error_at_scanposrV  s     r   unclosed_string_action#PyrexScanner.unclosed_string_action  s    t$78r   c                    U R                  S5        U(       ad  US   nU R                  S:X  a  X l        O!U R                  U:w  a  U R                  S5        UR                  US5      S:w  a  U R                  S5        U R	                  5       n[        U5      nXC:X  a  g XC:  a.  U R                  R                  U5        U R                  SS5        g X@R	                  5       :  aA  U R                  R                  5         U R                  SS5        X@R	                  5       :  a  MA  X@R	                  5       :w  a  U R                  S5        g g )Nr   r   r3  zMixed use of tabs and spacesr4  DEDENTzInconsistent indentation)
rJ  rE  r  r   re  r   rD  r  rU  r  )rL   rW  cre  	new_levels        r   indentation_actionPyrexScanner.indentation_action  s   

2
 QA$$,()% ((A-))*HI||Ar"b(%%&DE+/+=+=+?'*4y	%&"")))4LL2&0022&&**,Xr* 0022
 ..00%%&@A 1r   c                     [        U R                  5      S:  aG  U R                  SS5        U R                  R                  5         [        U R                  5      S:  a  MG  U R                  SS5        g )Nr   r  r   EOF)r   rD  rU  r  rV  s     r   
eof_actionPyrexScanner.eof_action  sZ    $(()A-LL2&""&&( $(()A- 	UBr   c                 v    U R                  5       u  pU[        :X  a  X R                  ;   a  US:X  a;  [
        U R                  R                  ;   a  U R                  R                  SS 5        OLUS:X  a7  U R                  R                  S:  a  U R                  R                  SS 5        OU R                  U   nU R                  R                  U5      nU R                  b+  U R                  R                  XU R                  5       45        Xl        X l        g ! [         a    U R                  S5         g f = f)NzUnrecognized characterr!   r)      )readr   r  r   r8  r   r:  future_directivesr  language_levelintern_ustringrI  r  positionrK  systringr!   )rL   rK  r  r^  r   colts          r   r   PyrexScanner.next  s    	99;LB ;==(w&>T\\=[=[+[MM%%gt4'DLL,G,G1,LMM%%fd3x0B||228<H##/$$++R4==?,KL ! ! 	!!":;	s   D D87D8c                 :   U R                   U R                  4nU R                  5       nU R                  5         U R                   U R                  4nU R	                  U R                   U R                  U R                  5       5        Uu  U l         U l        X l        U$ r   )rK  r  r  r   unreadlast_token_position_tuple)rL   saved	saved_posr   s       r   peekPyrexScanner.peek,  sq    &MMO			ww%DGGT]]DMMO<!&)2&r   c                     U R                  U R                  U R                  U R                  5        Xl        X l        X0l        g r   )r  rK  r  r  )rL   rK  r  r  s       r   put_backPyrexScanner.put_back6  s0    DGGT]]D,J,JK ),&r   c                     Uc  U R                  5       nU R                  S:X  a  [        US5        [        X!5      nU(       a  Ueg )Nr4  z!Possible inconsistent indentation)r  rK  r   )rL   messager  r  errs        r   r   PyrexScanner.error=  s<    ;--/C77h#:;C!)5r   c                 H    U R                  5       nU R                  XS5        g NT)r  r   )rL   r  r  s      r   r  PyrexScanner.error_at_scanposE  s      '')

7&r   c                 h    U R                   U:X  a  U R                  5         g U R                  X5        g r   )rK  r   expectedrL   whatr  s      r   expectPyrexScanner.expectK  s"    77d?IIKMM$(r   c                     U R                   [        :X  a!  U R                  U:X  a  U R                  5         g U R	                  X5        g r   )rK  r   r  r   r  r  s      r   expect_keywordPyrexScanner.expect_keywordQ  s.    77e 5IIKMM$(r   c                     U(       a  U R                  U5        g U R                  [        :X  a  U R                  nOU R                  nU R                  SU< SU< S35        g )Nz
Expected 'z
', found 'r  )r   rK  r   r  )rL   r  r  founds       r   r  PyrexScanner.expectedW  s@    JJwww%JJdEBCr   c                 (    U R                  SS5        g )Nr4  z)Expected an increase in indentation levelr  r   s    r   expect_indentPyrexScanner.expect_indenta  s    HIJr   c                 (    U R                  SS5        g )Nr  z(Expected a decrease in indentation levelr  r   s    r   expect_dedentPyrexScanner.expect_dedentd  s    HHIr   ignore_semicolonc                     S nU(       a0  U R                   S:X  a   U R                  5       nU R                  5         U R                   S:w  a  U R                  SU5        Ub  [	        US5        g g )N;r  r  zuseless trailing semicolon)rK  r  r   r  r   )rL   r  r  useless_trailing_semicolons       r   expect_newlinePyrexScanner.expect_newlineg  s[    %)"3)-&IIK77eKK	7+%1.0LM 2r   c                     U =R                   S-  sl         U R                   S:X  a  SU R                  S'   SU R                  S'   g g )Nr   asyncawait)r9  r8  r   s    r   r>  PyrexScanner.enter_asyncr  sB    a"%,DMM'"%,DMM'" #r   c                 8   U R                   S:  d   eU =R                   S-  sl         U R                   (       db  U R                  S	 U R                  S	 U R                  S;   a7  [        U R                  R                  U R                  5      sU l        U l        g g g )Nr   r   r  r  )r  r  )r9  r8  rK  r   r:  r  r  r   s    r   
exit_asyncPyrexScanner.exit_asyncx  s    !!A%%%a!!g&g&ww,,).0K0KDGG0T& - "r   )r9  rF  r2  r<  r=  r:  rG  rH  r5  r;  rE  rD  r8  r  r@  rI  rA  rK  r  rC  )NNNNTNr  r   )zExpected a newlineF),re   rf   rg   rh   rM   rX  r[  r`  re  rj  rn  rq  ry  r}  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r   r  r  r   r  r  r  r  r  r  cythonbintr  r>  r  ri   r   r   r   r0  r0    s     7;bf-^"
.4*.( 	M% %#	(&
M$<89"Bs "BH 56-'))DKJ	NV[[ 	N-Ur   r0  scannerc              #     #    [        5       n U R                  n/ U l        U R                  U R                  U R	                  5       4n Uv   U(       aO  U R                  (       a=  [        U R                  S S 5       H  nU R                  " U6   M     U R                  " U6   OUb  UR                  U R                  5        X l         [        SS9  g ! [
         a
  n S nANS nAff = f! U(       aU  U R                  (       a=  [        U R                  S S 5       H  nU R                  " U6   M     U R                  " U6   X l        f Ub  UR                  U R                  5        X l        f = f! [        SS9  f = f7f)Nrd  T)ignore)
r   rI  rK  r  r  r   r   r  extendr   )r  errorsrI  initial_stateer  s         r   tentatively_scanr    sU    ]F$%99&(# W%5%5w7G7G7IJ	>L ..$,W-H-H"-M$N(((3 %O $$m4$0 $**7+F+FG*='d#  		 ..$,W-H-H"-M$N(((3 %O $$m4
 +>'	 %0 $**7+F+FG*='d#sN   E<:E. 	C A:E. 
E<
C&C) !C&&C) )BE++E. .E99E<c                   @    \ rS rSrS rS rS rS rS\4S jr	S r
S	rg
)r  i  c                     Xl         / U l        g r   )rw  bracket_states)rL   rw  s     r   rM   FTStringState.__init__  s    * r   c                 X    U R                   (       d  g U R                   S   R                  $ rc  )r  rF  r   s    r   rF  #FTStringState.bracket_nesting_level  s%    """"2&<<<r   c                 X    U R                   (       d  gU R                   S   R                  $ )NFrd  r  rv  r   s    r   rv  !FTStringState.in_format_specifier  s%    """"2&:::r   c                 ,    SU R                   S   l        g )NTrd  r  r   s    r   r|  %FTStringState.set_in_format_specifier  s    6:B3r   rF  c                 L    U R                   R                  [        U5      5        g r   )r  r  FTStringBracketStaterL   rF  s     r   r   FTStringState.push_bracket_state  s    ""#78M#NOr   c                 8    U R                   R                  5         g r   )r  r  r   s    r   rx  FTStringState.pop_bracket_state  s    !r   )r  rw  N)re   rf   rg   rh   rM   rF  rv  r|  r   r  rx  ri   r   r   r   r  r    s)    !=
;
;P P"r   r  c                   <    \ rS rSr% Sr\\S'   \\S'   S\4S jrSr	g)r  i  rF  rv  rF  rv  c                     Xl         SU l        g r   r  r  s     r   rM   FTStringBracketState.__init__  s    %:"#( r   N)
re   rf   rg   rh   	__slots__r   __annotations__rw   rM   ri   r   r   r   r  r    s"     AI)c )r   r  )-r  rS   objectr   r	   unicodedatar
   
contextlibr   r   r   Plex.Scannersr   Plex.Errorsr   Errorsr   r   r   r   r   Lexiconr   r   r   r   Futurer   debug_scannerrB  scanner_debug_flagsscanner_dump_filer   r   r6  r7  rF   r   r   r   r  r0  r  r  r  r   r   r   <module>r/     s     FF$FF6+ 
  ! %  # + M M O O "  
  ' *   :F8 8v>;+ >;B$9- $9RaU7 aUF $l $ $4" "2) )r   