
    ]OgD<                         S SK r S SKJrJrJrJrJrJrJrJ	r	J
r
Jr  S SKJrJrJr  S SKJr  \\S4   r " S S\R(                  5      r " S S	5      r " S
 S5      r " S S5      rSS\S\4S jjrg)    N)
IOAnyDictIteratorListNoReturnOptionalSequenceTupleUnion)grammartokentokenize)GoodTokenInfozos.PathLike[str]c                       \ rS rSrSrg)PgenGrammar    N)__name__
__module____qualname____firstlineno____static_attributes__r       X/Users/admin/workspace/ai/Jarvis/env/lib/python3.13/site-packages/blib2to3/pgen2/pgen.pyr   r      s    r   r   c                      \ rS rSr% \\S'   \\   \S'   \\	   \S'   \
\\\
\\4      4   \S'   S(S\S\\\      SS4S jjrS\4S	 jrS
\S\S\
\\4   4S jrS
\S\S\4S jrS)S jrS\SS4S jrS\\
\\S   4   \4   4S jrSSSSS\S   4S jrS\SSSSSS4S jrS\S\S   SS4S jrS\S   SS4S jrS\S   4S jrS\S   4S jrS\S   4S jrS\S   4S jrS(S \S!\\    S\4S" jjr!S)S# jr"S$\S%\ S\#4S& jr$S'r%g)*ParserGenerator   filenamestream	generatorfirstNreturnc                 8   S nUc  [        USS9nUR                  nXl        X l        [        R
                  " UR                  5      U l        U R                  5         U R                  5       u  U l
        U l        Ub  U" 5         0 U l        U R                  5         g )Nzutf-8)encoding)opencloser   r    r   generate_tokensreadliner!   gettokenparsedfasstartsymbolr"   addfirstsets)selfr   r    close_streams       r   __init__ParserGenerator.__init__"   s}    >(W5F!<<L !11&//B&*jjl#	4##N
r   c           	         [        5       n[        U R                  R                  5       5      nUR	                  5         UR                  U R                  5        UR                  SU R                  5        U H7  nS[        UR                  5      -   nXAR                  U'   X1R                  U'   M9     U GH  nU R                  U   n/ nU H  n/ n[        UR                  R                  5       5       H6  u  pUR                  U R                  X5      UR!                  U
5      45        M8     UR"                  (       a"  UR                  SUR!                  U5      45        UR                  U5        M     UR$                  R                  U5        X`R'                  X5      4UR                  UR                  U   '   GM     UR                  U R                     Ul        U$ )Nr      )r   listr,   keyssortremover-   insertlensymbol2numbernumber2symbolsortedarcsitemsappend
make_labelindexisfinalstates
make_firststart)r/   cnamesnameidfarD   stater>   labelnexts              r   make_grammarParserGenerator.make_grammar1   sn   MTYY^^%&

T%%&Q(()Dc!//**A$%OOD!!%OOA  D))D/CF#)%***:*:*<#=KEKK!:CIIdO LM $>==KKCIIe$4 56d#  HHOOF#-3__Q5M,NAFF1??4()  //$"2"23r   rG   rI   c                     U R                   U   nUc   e0 n[        U5       H  nU R                  X5      nSXF'   M     U$ N   )r"   r=   rA   )r/   rG   rI   rawfirstr"   rM   ilabels          r   rE   ParserGenerator.make_firstJ   sL    ::d####H%E__Q.FEM & r   rM   c                 *   [        UR                  5      nUS   R                  5       (       a  X!R                  ;   aX  X!R                  ;   a  UR                  U   $ UR                  R                  UR                  U   S 45        X1R                  U'   U$ [        [        US 5      n[        U[        5      (       d   U5       eU[        R                  ;   d   U5       eXAR                  ;   a  UR                  U   $ UR                  R                  US 45        X1R                  U'   U$ US   S;   d   U5       e[        U5      nUS   R                  5       (       a\  US   S:X  a  UR                  nOUR                  nXV;   a  Xe   $ UR                  R                  [        R                  U45        X6U'   U$ [         R"                  U   nXAR                  ;   a  UR                  U   $ UR                  R                  US 45        X1R                  U'   U$ )Nr   )"'rX   )r:   labelsisalphar;   symbol2labelr@   getattrr   
isinstanceinttok_nametokensevalsoft_keywordskeywordsNAMEr   opmap)r/   rG   rM   rU   itokenvaluerd   s          r   rA   ParserGenerator.make_labelT   s   QXX8'NN*>>%00HHOOQ__U%;T$BC,2NN5)!M !t4!&#..55./66/XX%88F++HHOOVTN3'-HHV$!M 8z)050)KEQx!!8s? H zzH $#?*HHOOUZZ$78&,UO!M !u-XX%88F++HHOOVTN3'-HHV$!Mr   c                     [        U R                  R                  5       5      nUR                  5         U H%  nX R                  ;  d  M  U R                  U5        M'     g N)r5   r,   r6   r7   r"   	calcfirst)r/   rH   rI   s      r   r.   ParserGenerator.addfirstsets   s@    TYY^^%&

D::%t$ r   c                 2   U R                   U   nS U R                  U'   US   n0 n0 nUR                   H  nX`R                   ;   al  X`R                  ;   a!  U R                  U   nUc  [        SU-  5      eO%U R	                  U5        U R                  U   nUc   eUR                  U5        XuU'   M~  SXF'   US0XV'   M     0 nUR                  5        H4  u  piU	 H)  n
X;   a  [        SU< SU
< SU< SX   < 35      eXhU
'   M+     M6     X@R                  U'   g )Nr   zrecursion for rule %rrS   zrule z is ambiguous; z is in the first sets of z as well as )r,   r"   r>   
ValueErrorrl   updater?   )r/   rI   rK   rL   totalsetoverlapcheckrM   fsetinverseitsfirstsymbols              r   rl   ParserGenerator.calcfirst   s+   iio

4A#%ZZE		!JJ&::e,D|()@4)GHH $ NN5)::e,D+++%&*U#"#',aj#   #%+113OE"$$$(&%J  #( #  4 $

4r   DFAStatec                 l   0 nS nU R                   [        R                  :w  Ga
  U R                   [        R                  :X  a0  U R	                  5         U R                   [        R                  :X  a  M0  U R                  [        R                  5      nU R                  [        R                  S5        U R                  5       u  pEU R                  [        R                  5        U R                  XE5      nU R                  U5        XaU'   Uc  UnU R                   [        R                  :w  a  GM
  Uc   eX4$ )N:)typer   	ENDMARKERNEWLINEr*   expectre   OP	parse_rhsmake_dfasimplify_dfa)r/   r,   r-   rI   azrK   s          r   r+   ParserGenerator.parse   s    %)ii5??*))u}}, ))u}}, ;;uzz*DKK#&>>#DAKK&--%C c"J""# ii5??*$ &&&  r   rF   NFAStatefinishc           
        ^ [        U[        5      (       d   e[        U[        5      (       d   eS[        S[        [        [        4   4U4S jjnS[        S[        [        [        4   SS 4U4S jjm[	        U" U5      U5      /nU H  n0 nUR
                   H5  nUR                   H"  u  pUc  M
  T" XR                  U0 5      5        M$     M7     [        UR                  5       5       HM  u  pU H  nUR
                  U
:X  d  M    O   [	        X5      nUR                  U5        UR                  X5        MO     M     U$ )NrL   r#   c                    > 0 nT" X5        U$ rk   r   )rL   base
addclosures     r   closure)ParserGenerator.make_dfa.<locals>.closure   s    (*Du#Kr   r   c                    > [        U [        5      (       d   eX;   a  g SX'   U R                   H  u  p#Ub  M
  T" X15        M     g rR   )r^   r   r>   )rL   r   rM   rN   r   s       r   r   ,ParserGenerator.make_dfa.<locals>.addclosure   sB    eX....}DK$zz=t*  *r   )r^   r   r   r_   rx   nfasetr>   
setdefaultr=   r?   r@   addarc)r/   rF   r   r   rD   rL   r>   nfastaterM   rN   r   str   s               @r   r   ParserGenerator.make_dfa   s"   
 %****&(++++	8 	Xs](; 	
	+h 	+d8S=.A 	+d 	+ 75>623E35D!LL#+==KE("4)CD $1 ) "(

!5 ByyF* ! "&1BMM"%R' "6  r   c                 ^   [        SU5        U/n[        U5       H  u  pV[        SXVUL =(       a    S=(       d    S5        UR                   HZ  u  pxX;   a  UR                  U5      n	O[	        U5      n	UR                  U5        Uc  [        SU	-  5        MK  [        SXy4-  5        M\     M     g )NzDump of NFA for  State(final) z	    -> %d    %s -> %d)print	enumerater>   rB   r:   r@   )
r/   rI   rF   r   todorJ   rL   rM   rN   js
             r   dump_nfaParserGenerator.dump_nfa   s    &w!$HA)Q =I CD$zz<

4(AD	AKK%=+/*.E:56  * (r   rK   c           	      (   [        SU5        [        U5       Hw  u  p4[        SX4R                  =(       a    S=(       d    S5        [        UR                  R                  5       5       H#  u  pV[        SXRR                  U5      4-  5        M%     My     g )NzDump of DFA forr   r   r   r   )r   r   rC   r=   r>   r?   rB   )r/   rI   rK   rJ   rL   rM   rN   s          r   dump_dfaParserGenerator.dump_dfa   sk    &!#HA)Q ;) ArB%ejj&6&6&89nyy'??@  : 'r   c                     SnU(       ai  Sn[        U5       HN  u  p4[        US-   [        U5      5       H-  nX   nXF:X  d  M  X	 U H  nUR                  Xd5        M     Sn  ML     MP     U(       a  Mh  g g )NTFrS   )r   ranger:   
unifystate)r/   rK   changesrJ   state_ir   state_jrL   s           r   r   ParserGenerator.simplify_dfa  ss     G'n
q1uc#h/A!fG)F%(E!,,W> &)"& 0 - gr   )r   r   c                    U R                  5       u  pU R                  S:w  a  X4$ [        5       n[        5       nUR                  U5        UR                  U5        U R                  S:X  aV  U R	                  5         U R                  5       u  pUR                  U5        UR                  U5        U R                  S:X  a  MV  X44$ )N|)	parse_altrh   r   r   r*   )r/   r   r   aazzs        r   r   ParserGenerator.parse_rhs  s    ~~::4KBBIIaLHHRL**#~~'		!	 **#
 6Mr   c                 v   U R                  5       u  pU R                  S;   d.  U R                  [        R                  [        R
                  4;   ag  U R                  5       u  p4UR                  U5        UnU R                  S;   a  M7  U R                  [        R                  [        R
                  4;   a  Mg  X4$ )N)([)
parse_itemrh   r{   r   re   STRINGr   )r/   r   brG   ds        r   r   ParserGenerator.parse_alt,  s     jjJ&$))

ELL7Q*Q??$DAHHQKA jjJ&$))

ELL7Q*Q tr   c                 v   U R                   S:X  aV  U R                  5         U R                  5       u  pU R                  [        R
                  S5        UR                  U5        X4$ U R                  5       u  pU R                   nUS;  a  X4$ U R                  5         UR                  U5        US:X  a  X4$ X4$ )Nr   ])+*r   )rh   r*   r   r~   r   r   r   
parse_atom)r/   r   r   rh   s       r   r   ParserGenerator.parse_item5  s    ::MMO>>#DAKK#&HHQK4K??$DAJJEJ&tMMOHHQK|ttr   c                    U R                   S:X  aE  U R                  5         U R                  5       u  pU R                  [        R
                  S5        X4$ U R                  [        R                  [        R                  4;   aB  [        5       n[        5       nUR                  X R                   5        U R                  5         X4$ U R                  SU R                  U R                   5        [        e)Nr   )z+expected (...) or NAME or STRING, got %s/%s)rh   r*   r   r~   r   r   r{   re   r   r   r   raise_errorAssertionError)r/   r   r   s      r   r   ParserGenerator.parse_atomI  s    ::MMO>>#DAKK#&4KYY5::u||44
A
AHHQ

#MMO4K=tyy$** ! r   r{   rh   c                     U R                   U:w  d  Ub8  U R                  U:w  a(  U R                  SXU R                   U R                  5        U R                  nU R                  5         U$ )Nzexpected %s/%s, got %s/%s)r{   rh   r   r*   )r/   r{   rh   s      r   r~   ParserGenerator.expect\  sV    99!2tzzU7J+T$))TZZ 

r   c                 :   [        U R                  5      nUS   [        R                  [        R                  4;   a>  [        U R                  5      nUS   [        R                  [        R                  4;   a  M>  Uu  U l        U l        U l        U l        U l	        g )Nr   )
rN   r!   r   COMMENTNLr{   rh   beginendline)r/   tups     r   r*   ParserGenerator.gettokene  sp    4>>"!f))8;;77t~~&C !f))8;;77AD>	4:tz48TYr   msgargsc           
         U(       a   X-  n[        XR                  U R                  S   U R                  S   U R                  45      e! [          a/    SR                  U/[        [        [        U5      5      -   5      n Nuf = f)N r   rS   )		Exceptionjoinr5   mapstrSyntaxErrorr   r   r   )r/   r   r   s      r   r   ParserGenerator.raise_errorl  sp    =j #txx{DHHQKSTT  =hhutCTN';;<=s   A
 
6BB)r   r,   r   r   r"   r!   r   r-   r    r{   rh   rk   r#   N)&r   r   r   r   Path__annotations__r   r   r   r   r   r	   r_   r1   r   rO   rE   rA   r.   rl   r   r   r+   r   r   r
   r   r   r   r   r   r   r   r~   r*   r   r   r   r   r   r   r   r      s   NsGO&&Xd38n--.. x3/@ D k 2K s tCH~ 1"K 1" 1" 1"f%$c $d $@!uT#tJ'7"78#=> !2%j %* %jAQ %N7S 7 7Z 7D 7 AS Ax
'; A AZ 0 T *5!78 "5!78 E"89 (!E"89 !&3 x}  EUs U3 U8 Ur   r   c                   `    \ rS rSr% \\\\   S 4      \S'   S
S jr	SSS S\\   SS4S jjr
S	rg)r   iu  r>   r#   Nc                     / U l         g rk   r>   )r/   s    r   r1   NFAState.__init__x  s	    	r   rN   rM   c                     Ub  [        U[        5      (       d   e[        U[        5      (       d   eU R                  R	                  X!45        g rk   )r^   r   r   r>   r@   r/   rN   rM   s      r   r   NFAState.addarc{  s@    }
5# 6 666$))))		%'r   r   r   rk   )r   r   r   r   r   r   r	   r   r   r1   r   r   r   r   r   r   r   u  sC    
uXc]J./
00(: (hsm (t ( (r   r   c                       \ rS rSr% \\\4   \S'   \\S'   \\	S 4   \S'   S\\\4   S\SS4S jr
S	S S
\	SS4S jrSS jrS\S\4S jrSr\\S'   Srg)rx   i  r   rC   r>   finalr#   Nc                     [        U[        5      (       d   e[        [        [        U5      5      [        5      (       d   e[        U[        5      (       d   eXl        X!;   U l        0 U l        g rk   )r^   dictrN   iterr   r   rC   r>   )r/   r   r   s      r   r1   DFAState.__init__  sY    &$''''$tF|,h7777%****	r   rN   rM   c                     [        U[        5      (       d   eX R                  ;  d   e[        U[        5      (       d   eXR                  U'   g rk   )r^   r   r>   rx   r   s      r   r   DFAState.addarc  sD    %%%%%II%%%$))))		%r   c                 r    U R                   R                  5        H  u  p4XAL d  M  X R                   U'   M     g rk   )r>   r?   )r/   oldnewrM   rN   s        r   r   DFAState.unifystate  s*    99??,KE{#&		%  -r   otherc                 F   [        U[        5      (       d   eU R                  UR                  :w  a  g[        U R                  5      [        UR                  5      :w  a  gU R                  R                  5        H$  u  p#X1R                  R                  U5      Ld  M$    g   g)NFT)r^   rx   rC   r:   r>   r?   get)r/   r   rM   rN   s       r   __eq__DFAState.__eq__  sw    %****<<5==( tyy>S_,99??,KE::>>%00 - r   __hash__)r>   rC   r   )r   rx   r   rx   r#   N)r   r   r   r   r   r   r   r   boolr   r1   r   r   r   r   r   r   r   r   rx   rx     s    3M
sJ
tHcM2 8   :  c  d  '
C D  Hcr   rx   r   r#   c                 8    [        U 5      nUR                  5       $ rk   )r   rO   )r   ps     r   generate_grammarr     s    !A>>r   )zGrammar.txt)ostypingr   r   r   r   r   r   r	   r
   r   r   blib2to3.pgen2r   r   r   blib2to3.pgen2.tokenizer   r   r   Grammarr   r   r   rx   r   r   r   r   <module>r      s{    
   4 3 1S$$%	'// 	VU VUr
	( 	(& &Rt  r   