
    3jz                     $    S r  " S S\5      rS rg)z7Simple and tiny yield-based trampoline implementation.
c                       \ rS rSrSrS rSrg)TailCall   z-Raised to signal a tail call to trampoline().c                     Xl         g )Ncall)selfr   s     M/home/wildlama/miniconda3/lib/python3.13/site-packages/trampoline/__init__.py__init__TailCall.__init__   s    	    r   N)__name__
__module____qualname____firstlineno____doc__r
   __static_attributes__ r   r	   r   r      s
    3r   r   c                    U /nSnSnU(       a_   Ub  USp4US   R                  U5      nO)Uc  [        US   5      nOUSp&US   R                  U5      nUR                  U5        U(       a  M_  Ub  UeU$ ! [         a&  nUR                  5         UR                  n SnAN;SnAf[         a  nUR                  US'    SnAN\SnAf[         a  nUR                  5         Un SnANSnAff = f)z3Invoke a generator for a trampolined function call.N)
thrownextsendappendStopIterationpopvaluer   r   BaseException)r   stackretval	exceptionexresr   es           r	   
trampoliner$      s     FEFI
	$ )4IBioob) 59o &vBinnU+LL %* M  	IIKWWF 	E"I 	IIKI	s0   AA5 5
C*?B  C*-CC*C%%C*N)r   r   r   r$   r   r   r	   <module>r%      s   } r   