Ë
    Kæõi¬  ã                   ó†   — d dl mZ d dlmZ d dlmZ ej                  Zej                  Zej                  Z G d„ de«      Z	y)é    )Útree)ÚPythonTokenTypes)Ú
BaseParserc                   ó@  ‡ — e Zd ZdZi dej
                  “dej                  “dej                  “dej                  “dej                  “dej                  “dej                  “d	ej                  “d
ej                  “dej                  “dej                  “dej                  “dej                  “dej                  “dej                  “dej                  “dej                  “ej                   ej"                  ej$                  ej&                  ej(                  ej*                  ej,                  ej.                  ej.                  ej0                  dœ
¥Zej4                  Zej:                  ej<                  ej>                  ej@                  ejB                  ejD                  ejF                  ejH                  ejJ                  ejL                  ejN                  ejP                  ejR                  ejT                  iZ+dˆ fd„	Z,ˆ fd„Z-d„ Z.d„ Z/ˆ fd„Z0d„ Z1d„ Z2ˆ xZ3S )ÚParserzÈ
    This class is used to parse a Python file, it then divides them into a
    class structure of different scopes.

    :param pgen_grammar: The grammar object of pgen2. Loaded by load_grammar.
    Ú	expr_stmtÚclassdefÚfuncdefÚ
file_inputÚimport_nameÚimport_fromÚ
break_stmtÚcontinue_stmtÚreturn_stmtÚ
raise_stmtÚ
yield_exprÚdel_stmtÚ	pass_stmtÚglobal_stmtÚnonlocal_stmtÚ
print_stmtÚassert_stmt)
Úif_stmtÚ	with_stmtÚfor_stmtÚ
while_stmtÚtry_stmtÚsync_comp_forÚ	decoratorÚlambdefÚlambdef_nocondÚnamedexpr_testc                 óT   •— t         ‰| �  |||¬«       g | _        g | _        d| _        y )N)Úerror_recoveryr   )ÚsuperÚ__init__Úsyntax_errorsÚ_omit_dedent_listÚ_indent_counter)ÚselfÚpgen_grammarr$   Ústart_nonterminalÚ	__class__s       €úd/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/parso/python/parser.pyr&   zParser.__init__@   s7   ø€ Ü‰Ñ˜Ð'8Ø(6ð 	ô 	8ð  ˆÔØ!#ˆÔØ ˆÕó    c                 ó†   •— | j                   r&| j                  dk7  rt        ‚| j                  |«      }t        ‰| �  |«      S )Nr   )Ú_error_recoveryÚ_start_nonterminalÚNotImplementedErrorÚ_recovery_tokenizer%   Úparse)r*   Útokensr-   s     €r.   r5   zParser.parseH   s?   ø€ Ø×ÒØ×&Ñ&¨,Ò6Ü)Ð)à×,Ñ,¨VÓ4ˆFä‰w‰}˜VÓ$Ð$r/   c                 ó˜   — 	  | j                   |   |«      }|S # t        $ r' |dk(  r|d   g|dd z   }| j                  ||«      }Y |S w xY w)a  
        Convert raw node information to a PythonBaseNode instance.

        This is passed to the parser driver which calls it whenever a reduction of a
        grammar rule produces a new complete node, so that the tree is build
        strictly bottom-up.
        Úsuiter   é   éÿÿÿÿ)Únode_mapÚKeyErrorÚdefault_node)r*   ÚnonterminalÚchildrenÚnodes       r.   Úconvert_nodezParser.convert_nodeQ   sk   € ð		<Ø-�4—=‘= Ñ-¨hÓ7ˆDð ˆøô ò 	<Ø˜gÒ%ð
 % Q™K˜=¨8°A°b¨>Ñ9�Ø×$Ñ$ [°(Ó;‰DØˆð	<ús   ‚ ™,A	ÁA	c                 ó  — |t         k(  rF|| j                  j                  v rt        j                  |||«      S t        j
                  |||«      S  | j                  j                  |t        j                  «      |||«      S )N)	ÚNAMEÚ_pgen_grammarÚreserved_syntax_stringsr   ÚKeywordÚNameÚ	_leaf_mapÚgetÚOperator)r*   ÚtypeÚvalueÚprefixÚ	start_poss        r.   Úconvert_leafzParser.convert_leafe   si   € à”4Š<Ø˜×*Ñ*×BÑBÑBÜ—|‘| E¨9°fÓ=Ð=ä—y‘y ¨	°6Ó:Ð:à6ˆt�~‰~×!Ñ! $¬¯©Ó6°u¸iÈÓPÐPr/   c                 ó  •— | j                   d   j                  }|r|d   j                  «       }nd }| j                  dk(  �r|j                  t
        j                  k(  sI|j                  t        k(  rã|j                  j                  d«      sÈ|j                  j                  d«      s­| j                   d   j                  j                  dk(  r‡	 | j                   d   j                  j                  t
        j                     }|j                  j                  r<|j                   s0|j                  | j                   d   _
        | j#                  |«       y | j&                  st(        ‰| �U  |«      S d„ } || j                   «      }| j-                  |dz   «      r| j#                  |«       n|\  }}}	}
|t.        k(  r%| j0                  j3                  | j4                  «       t7        j8                  |j:                  ||	|
«      }| j                   d   j                  j3                  |«       | j                   d   }|j<                  dk(  r 	 |j                  j>                  d	   |_
        y y # t$        $ r Y �Œ w xY w# t$        $ r Y y w xY w)
Nr:   r   Ú
ÚÚsimple_stmtc                 óÊ   — t        t        t        | «      «      «      D ]B  \  }}|j                  dk(  r |S |j                  dk(  sŒ(t	        |j
                  «      dk7  sŒA |S  S )Nr   r8   é   )ÚreversedÚlistÚ	enumerater>   ÚlenÚnodes)ÚstackÚuntil_indexÚ
stack_nodes      r.   Úcurrent_suitez,Parser.error_recovery.<locals>.current_suiteŽ   sr   € ô ,4´D¼À5Ó9IÓ4JÖ+KÑ'�˜Zà×)Ñ)¨\Ò9Øð Ðð  ×+Ñ+¨wÓ6ô ˜:×+Ñ+Ó,°Ó1ØØÐð ,Lð Ðr/   rU   r8   Ústmt) r[   rZ   Úget_last_leafr2   rK   r   Ú	ENDMARKERÚDEDENTrL   ÚendswithÚdfaÚ	from_ruleÚtransitionsÚNEWLINEÚnext_dfaÚis_finalÚ
dfa_pushesÚ
_add_tokenr<   r1   r%   r$   Ú_stack_removalÚINDENTr(   Úappendr)   r   ÚPythonErrorLeafÚnamer>   Úarcs)r*   ÚtokenÚ	tos_nodesÚ	last_leafÚplanr^   r\   ÚtyprL   rN   rM   Ú
error_leafÚtosr-   s                €r.   r$   zParser.error_recoveryo   s  ø€ Ø—J‘J˜r‘N×(Ñ(ˆ	ÙØ! "™×3Ñ3Ó5‰IàˆIà×"Ñ" lÓ2Ø—‘Ô/×9Ñ9Ò9Ø—J‘J¤&Ò(°·±×1IÑ1IÈ$Ô1OØ"Ÿ™×1Ñ1°$Ô7ð
 �z‰z˜"‰~×!Ñ!×+Ñ+¨}Ò<ð
ØŸ:™: b™>×-Ñ-×9Ñ9Ô:J×:RÑ:RÑS�Dð —}‘}×-Ò-°d·o²oð .2¯]©]˜Ÿ
™
 2™Ô*ØŸ™¨Ô.Øà×#Ò#Ü‘7Ñ)¨%Ó0Ð0ò	ñ $ D§J¡JÓ/ˆà×Ñ˜{¨Q™Ô/Ø�O‰O˜EÕ"à,1Ñ)ˆC�˜	 6Ø”fŠ}ð ×&Ñ&×-Ñ-¨d×.BÑ.BÔCä×-Ñ-¨c¯h©h¸¸yÈ&ÓQˆJØ�J‰J�r‰N× Ñ ×'Ñ'¨
Ô3à�j‰j˜‰nˆØ�?‰?˜gÒ%ðØŸ'™'Ÿ,™, vÑ.�•ð	 &øôW  ò Úðûô` ò áðús$   Ã4I* É
I: É*	I7É6I7É:	JÊJc                 ó$  — | j                   |d  D ��cg c]  }|j                  D ]  }|‘Œ Œ }}}|r@t        j                  |«      }| j                   |dz
     j                  j	                  |«       g | j                   |d  t        |«      S c c}}w )NrU   )r[   rZ   r   ÚPythonErrorNodern   Úbool)r*   Ústart_indexr]   r@   Ú	all_nodess        r.   rl   zParser._stack_removalµ   s‡   € Ø,0¯J©J°{°|Ñ,DÔbÑ,D˜jÐQ[×QaÔQaÈ’TÐQa�TÐ,Dˆ	ÑbáÜ×'Ñ'¨	Ó2ˆDØ�J‰J�{ Q‘Ñ'×-Ñ-×4Ñ4°TÔ:à#%ˆ�
‰
�;�<Ð Ü�I‹Ðùó cs   “Bc              #   ó2  K  — |D ]Ž  }|d   }|t         k(  r\| j                  }|r8|d   | j                  k(  r&|j                  «        | xj                  dz  c_        ŒW| xj                  dz  c_        n|t        k(  r| xj                  dz  c_        |–— Œ� y ­w)Nr   r:   rU   )rb   r(   r)   Úpoprm   )r*   r6   rr   rv   Úos        r.   r4   zParser._recovery_tokenize¿   sŒ   è ø€ ÛˆEØ˜‘(ˆCØ”fŠ}ð ×*Ñ*�Ù˜˜2™ $×"6Ñ"6Ò6Ø—E‘E”GØ×(Ò(¨AÑ-Õ(Øà×$Ò$¨Ñ)Ö$Øœ’Ø×$Ò$¨Ñ)Õ$Ø‹Kñ ùs   ‚BB)Tr   )4Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚExprStmtÚClassÚFunctionÚModuleÚ
ImportNameÚ
ImportFromÚKeywordStatementÚ
ReturnStmtÚ	YieldExprÚ
GlobalStmtÚ
AssertStmtÚIfStmtÚWithStmtÚForStmtÚ	WhileStmtÚTryStmtÚSyncCompForÚ	DecoratorÚLambdaÚ	NamedExprr;   Ú
PythonNoder=   r   ÚSTRINGÚStringÚNUMBERÚNumberrg   ÚNewlinera   Ú	EndMarkerÚFSTRING_STRINGÚFStringStringÚFSTRING_STARTÚFStringStartÚFSTRING_ENDÚ
FStringEndrH   r&   r5   rA   rO   r$   rl   r4   Ú__classcell__)r-   s   @r.   r   r      s"  ø„ ñðØ�T—]‘]ðà�D—J‘Jðð 	�4—=‘=ðð 	�d—k‘kð	ð
 	�t—‘ðð 	�t—‘ðð 	�d×+Ñ+ðð 	˜×.Ñ.ðð 	�t—‘ðð 	�d×+Ñ+ðð 	�d—n‘nðð 	�D×)Ñ)ðð 	�T×*Ñ*ðð 	�t—‘ðð 	˜×.Ñ.ðð  	�d×+Ñ+ð!ð" 	�t—‘ð#ð$ —;‘;Ø—]‘]Ø—L‘LØ—n‘nØ—L‘LØ×)Ñ)ð —^‘^Ø—;‘;ØŸ+™+ØŸ.™.ò=€Hð@ —?‘?€Lð 	×Ñ §¡Ø×Ñ §¡Ø× Ñ  $§,¡,Ø×"Ñ" D§N¡NØ×'Ñ'¨×);Ñ);Ø×&Ñ&¨×(9Ñ(9Ø×$Ñ$ d§o¡oð€Iõ!ô%òò(QôDòLör/   r   N)
Úparso.pythonr   Úparso.python.tokenr   Úparso.parserr   rC   rm   rb   r   © r/   r.   Ú<module>r«      s?   ðÝ Ý /Ý #ð ×Ñ€Ø	×	 Ñ	 €Ø	×	 Ñ	 €ôCˆZõ Cr/   