ó
    Ð]j‹  ã                   ó|   • S SK JrJrJrJr  S SKJr  S SKJr  S SK	J
r
   " S S5      r " S S5      r " S	 S
5      rg)é    )ÚOptionalÚIteratorÚTupleÚList)Útokenize)Úparse_version_string)ÚPythonTokenTypesc                   ó2   • \ rS rSrSSS\\   4S jrS rSrg)	ÚNFAArcé   Únext_ÚNFAStateÚnonterminal_or_stringc                 ó   • Xl         X l        g ©N©Únextr   ©Úselfr   r   s      ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/parso/pgen2/grammar_parser.pyÚ__init__ÚNFAArc.__init__   s   € Ø#Œ	Ø4IÕ"ó    c                 óT   • SU R                   R                  < SU R                  < S3$ )NÚ<z: Ú>)Ú	__class__Ú__name__r   ©r   s    r   Ú__repr__ÚNFAArc.__repr__   s   � Ø!Ÿ^™^×4Ô4°d×6PÔ6PÐQÐQr   r   N)	r   Ú
__module__Ú__qualname__Ú__firstlineno__r   Ústrr   r    Ú__static_attributes__© r   r   r   r      s"   † ðJ˜jð JÀÈ#Áô JõRr   r   c                   ó2   • \ rS rSrS\4S jrSS jrS rSrg)	r   é   Ú	from_rulec                 ó   • Xl         / U l        g r   )r*   Úarcs)r   r*   s     r   r   ÚNFAState.__init__   s   € Ø'ŒØ"$ˆ�	r   Nc                 ó®   • Ub  [        U[        5      (       d   e[        U[        5      (       d   eU R                  R	                  [        X5      5        g r   )Ú
isinstancer%   r   r,   Úappendr   r   s      r   Úadd_arcÚNFAState.add_arc   sF   € Ø$Ñ,´
Ð;PÔRU×0VÑ0VÐVÐVÜ˜%¤×*Ñ*Ð*Ð*Ø�	‰	×Ñœ Ó=Õ>r   c                 óT   • SU R                   R                  < SU R                  < S3$ )Nr   z: from r   )r   r   r*   r   s    r   r    ÚNFAState.__repr__!   s   � Ø"&§.¡.×"9Ô"9¸4¿>¼>ÐJÐJr   )r,   r*   r   )	r   r"   r#   r$   r%   r   r1   r    r&   r'   r   r   r   r      s   † ð% #ô %ô?õ
Kr   r   c                   ór   • \ rS rSrSrS\4S jrS\\\	\	4      4S jr
S rS rS	 rS
 rSS jrS rS rSrg)ÚGrammarParseré%   z&
The parser for Python grammar files.
Úbnf_grammarc                 ó`   • Xl         [        U[        S5      S9U l        U R	                  5         g )Nz3.9)Úversion_info)Ú_bnf_grammarr   r   Ú	generatorÚ	_gettoken)r   r8   s     r   r   ÚGrammarParser.__init__)   s+   € Ø'ÔÜ!ØÜ-¨eÓ4ñ
ˆŒð 	�‰Õr   Úreturnc              #   ó  #   • U R                   [        R                  :w  aé  U R                   [        R                  :X  a0  U R	                  5         U R                   [        R                  :X  a  M0  U R                  [        R                  5      U l        U R                  [        R                  S5        U R                  5       u  pU R                  [        R                  5        X4v •  U R                   [        R                  :w  a  Mè  g g 7f)NÚ:)
Útyper	   Ú	ENDMARKERÚNEWLINEr=   Ú_expectÚNAMEÚ_current_rule_nameÚOPÚ
_parse_rhs©r   ÚaÚzs      r   ÚparseÚGrammarParser.parse1   s¶   é € à�i‰iÔ+×5Ñ5Ó5Ø—)‘)Ô/×7Ñ7Ó7Ø—‘Ô ð —)‘)Ô/×7Ñ7Õ7ð '+§l¡lÔ3C×3HÑ3HÓ&IˆDÔ#Ø�L‰LÔ)×,Ñ,¨cÔ2à—?‘?Ó$‰DˆAØ�L‰LÔ)×1Ñ1Ô2à�$ŠJð �i‰iÔ+×5Ñ5×5ùs   ‚A+DÁ/BDÄ	Dc                 óV  • U R                  5       u  pU R                  S:w  a  X4$ [        U R                  5      n[        U R                  5      n UR	                  U5        UR	                  U5        U R                  S:w  a   X44$ U R                  5         U R                  5       u  pMZ  )NÚ|)Ú_parse_itemsÚvaluer   rG   r1   r=   )r   rK   rL   ÚaaÚzzs        r   rI   ÚGrammarParser._parse_rhs@   s™   € à× Ñ Ó"‰ˆØ�:‰:˜ÓØ�4ˆKä˜$×1Ñ1Ó2ˆBÜ˜$×1Ñ1Ó2ˆBØð —
‘
˜1”Ø—	‘	˜"”Ø—:‘: Ó$Øð �6ˆMð —‘Ô Ø×(Ñ(Ó*‘�ñ r   c                 óv  • U R                  5       u  pU R                  [        R                  [        R                  4;   d  U R
                  S;   ag  U R                  5       u  p4UR                  U5        UnU R                  [        R                  [        R                  4;   a  MU  U R
                  S;   a  Mg  X4$ )N)Ú(Ú[)Ú_parse_itemrB   r	   rF   ÚSTRINGrR   r1   )r   rK   ÚbÚcÚds        r   rQ   ÚGrammarParser._parse_itemsT   s“   € à×ÑÓ!‰ˆØ�i‰iÔ,×1Ñ1Ô3C×3JÑ3JÐKÓKØ—:‘: Ó+Ø×#Ñ#Ó%‰DˆAà�I‰I�aŒLØˆAð �i‰iÔ,×1Ñ1Ô3C×3JÑ3JÐKÕKØ—:‘: Õ+ð
 ˆ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$ )NrX   Ú])Ú+Ú*ra   )rR   r=   rI   rE   r	   rH   r1   Ú_parse_atom)r   rK   rL   rR   s       r   rY   ÚGrammarParser._parse_item_   s£   € à�:‰:˜ÓØ�N‰NÔØ—?‘?Ó$‰DˆAØ�L‰LÔ)×,Ñ,¨cÔ2ð �I‰I�aŒLØ�4ˆKà×#Ñ#Ó%‰DˆAØ—J‘JˆEØ˜JÓ&Ø�t�Ø�N‰NÔà�I‰I�aŒLØ˜‹|Ø�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;   aX  [        U R                  5      n[        U R                  5      nUR                  X R                   5        U R                  5         X4$ U R                  SU R                  U R                   5        g )NrW   Ú)z+expected (...) or NAME or STRING, got %s/%s)rR   r=   rI   rE   r	   rH   rB   rF   rZ   r   rG   r1   Ú_raise_errorrJ   s      r   rc   ÚGrammarParser._parse_atomx   sÀ   € à�:‰:˜ÓØ�N‰NÔØ—?‘?Ó$‰DˆAØ�L‰LÔ)×,Ñ,¨cÔ2Ø�4ˆKØ�Y‰YÔ+×0Ñ0Ô2B×2IÑ2IÐJÓJÜ˜×0Ñ0Ó1ˆAÜ˜×0Ñ0Ó1ˆAà�I‰I�aŸ™Ô$Ø�N‰NÔØ�4ˆKà×ÑÐKØ"Ÿi™i¨¯©õ5r   Nc                 ó
  • U R                   U:w  a'  U R                  SXR                   U R                  5        Ub,  U R                  U:w  a  U R                  SX R                  5        U R                  nU R                  5         U$ )Nzexpected %s, got %s [%s]zexpected %s, got %s)rB   rg   rR   r=   )r   Útype_rR   s      r   rE   ÚGrammarParser._expectŠ   sj   € Ø�9‰9˜ÓØ×ÑÐ8Ø#§Y¡Y°·
±
ô<àÑ §¡¨uÓ!4Ø×ÑÐ3°U¿J¹JÔGØ—
‘
ˆØ�‰ÔØˆr   c                 óZ   • [        U R                  5      nUu  U l        U l        U l        ng r   )r   r<   rB   rR   Úbegin)r   ÚtupÚprefixs      r   r=   ÚGrammarParser._gettoken”   s$   € Ü�4—>‘>Ó"ˆØ47Ñ1ˆŒ	�4”:˜tœz©6r   c           
      ó.  • U(       a   X-  nU R                  R                  5       U R                  S   S-
     n[        USU R                  S   U R                  S   U45      e!   SR                  U/[        [        [        U5      5      -   5      n N‡= f)NÚ r   é   z	<grammar>)ÚjoinÚlistÚmapr%   r;   Ú
splitlinesrm   ÚSyntaxError)r   ÚmsgÚargsÚlines       r   rg   ÚGrammarParser._raise_error˜   s�   € Þð=Ø‘j�ð × Ñ ×+Ñ+Ó-¨d¯j©j¸©m¸aÑ.?Ñ@ˆÜ˜# ¨T¯Z©Z¸©]Ø $§
¡
¨1¡¨tð 5ó 6ð 	6øð=Ø—h‘h ˜u¤t¬C´°T«NÓ';Ñ;Ó<’ús   ‰A$ Á$.B)r;   rG   rm   r<   rB   rR   r   )r   r"   r#   r$   Ú__doc__r%   r   r   r   r   rM   rI   rQ   rY   rc   rE   r=   rg   r&   r'   r   r   r6   r6   %   sQ   † ñð Cô ð�x  h°Ð&8Ñ 9Ñ:ô òò(	òò25ô$ò8õ6r   r6   N)Útypingr   r   r   r   Úparso.python.tokenizer   Úparso.utilsr   Úparso.python.tokenr	   r   r   r6   r'   r   r   Ú<module>r‚      s:   ð÷ 3Ó 2å *Ý ,Ý /÷Rñ R÷Kñ K÷{6ò {6r   