Ë
    ?çiT(  ã                   ó>   — d dl mZ d dlmZ d dlmZ  G d„ de«      Zy)é    )ÚStringIO)ÚToken)ÚCommonTokenStreamc                   ó,  ‡ — e Zd ZdZdZdZdZˆ fd„Zd„ Zd„ Z	efd„Z
efd	„Zefd
„Zd„ Zefd„Zd„ Zd„ Zd„ Zd„ Zefd„Zd„ Zd„ Zd„ Zd„ Zefd„Zd„ Zd„ Zd„ Zdedefd„Zd„ Z G d„ de«      Z  G d „ d!e «      Z! G d"„ d#e!«      Z" G d$„ d%e «      Z#ˆ xZ$S )&ÚTokenStreamRewriter)ÚtokensÚprogramsÚlastRewriteTokenIndexesÚdefaultéd   r   c                 ól   •— t         t        | �  «        || _        | j                  g i| _        i | _        y)zw
        :type  tokens: antlr4.BufferedTokenStream.BufferedTokenStream
        :param tokens:
        :return:
        N)Úsuperr   Ú__init__r   ÚDEFAULT_PROGRAM_NAMEr	   r
   )Úselfr   Ú	__class__s     €úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/antlr4/TokenStreamRewriter.pyr   zTokenStreamRewriter.__init__   s4   ø€ ô 	Ô! 4Ñ1Ô3ØˆŒØ×2Ñ2°BÐ7ˆŒØ')ˆÕ$ó    c                 ó   — | j                   S ©N)r   ©r   s    r   ÚgetTokenStreamz"TokenStreamRewriter.getTokenStream   s   € Ø�{‰{Ðr   c                 óz   — | j                   j                  |d «      }|r|| j                  | | j                   |<   y y r   )r	   ÚgetÚMIN_TOKEN_INDEX)r   Úinstruction_indexÚprogram_nameÚinss       r   ÚrollbackzTokenStreamRewriter.rollback"   s<   € Ø�m‰m×Ñ ¨dÓ3ˆÙØ*-¨d×.BÑ.BÐDUÐ*VˆD�M‰M˜,Ò'ð r   c                 ó<   — | j                  | j                  |«       y r   )r   r   ©r   r   s     r   ÚdeleteProgramz!TokenStreamRewriter.deleteProgram'   s   € Ø�‰�d×*Ñ*¨LÕ9r   c                 ó>   — | j                  |j                  ||«       y r   )ÚinsertAfterÚ
tokenIndex©r   ÚtokenÚtextr   s       r   ÚinsertAfterTokenz$TokenStreamRewriter.insertAfterToken*   s   € Ø×Ñ˜×)Ñ)¨4°Õ>r   c                 ó¨   — | j                  | j                  |dz   |«      }| j                  |«      }t        |«      |_        |j                  |«       y ©Né   )ÚInsertAfterOpr   Ú
getProgramÚlenÚinstructionIndexÚappend)r   Úindexr(   r   ÚopÚrewritess         r   r$   zTokenStreamRewriter.insertAfter-   sD   € Ø×Ñ §¡¨U°Q©Y¸Ó=ˆØ—?‘? <Ó0ˆÜ! (›mˆÔØ�‰˜Õr   c                 ó>   — | j                  | j                  ||«       y r   )ÚinsertBeforer   ©r   r2   r(   s      r   ÚinsertBeforeIndexz%TokenStreamRewriter.insertBeforeIndex3   s   € Ø×Ñ˜$×3Ñ3°U¸DÕAr   c                 ó>   — | j                  ||j                  |«       y r   )r6   r%   r&   s       r   ÚinsertBeforeTokenz%TokenStreamRewriter.insertBeforeToken6   s   € Ø×Ñ˜,¨×(8Ñ(8¸$Õ?r   c                 ó¢   — | j                  | j                  ||«      }| j                  |«      }t        |«      |_        |j                  |«       y r   )ÚInsertBeforeOpr   r.   r/   r0   r1   )r   r   r2   r(   r3   r4   s         r   r6   z TokenStreamRewriter.insertBefore9   s@   € Ø× Ñ  §¡¨e°TÓ:ˆØ—?‘? <Ó0ˆÜ! (›mˆÔØ�‰˜Õr   c                 ó@   — | j                  | j                  |||«       y r   ©Úreplacer   r7   s      r   ÚreplaceIndexz TokenStreamRewriter.replaceIndex?   s   € Ø�‰�T×.Ñ.°°u¸dÕCr   c                 ó@   — | j                  | j                  |||«       y r   r>   )r   Úfrom_idxÚto_idxr(   s       r   ÚreplaceRangez TokenStreamRewriter.replaceRangeB   s   € Ø�‰�T×.Ñ.°¸&À$ÕGr   c                 óh   — | j                  | j                  |j                  |j                  |«       y r   )r?   r   r%   )r   r'   r(   s      r   ÚreplaceSingleTokenz&TokenStreamRewriter.replaceSingleTokenE   s'   € Ø�‰�T×.Ñ.°×0@Ñ0@À%×BRÑBRÐTXÕYr   c                 óT   — | j                  ||j                  |j                  |«       y r   )r?   r%   )r   Ú
from_tokenÚto_tokenr(   r   s        r   ÚreplaceRangeTokensz&TokenStreamRewriter.replaceRangeTokensH   s    € Ø�‰�\ :×#8Ñ#8¸(×:MÑ:MÈtÕTr   c           	      ó†  — t        ||kD  |dk  |dk  |t        | j                  j                  «      k\  f«      r9t        dj	                  ||t        | j                  j                  «      «      «      ‚| j                  ||| j                  |«      }| j                  |«      }t        |«      |_        |j                  |«       y )Nr   z'replace: range invalid: {}..{}(size={}))	Úanyr/   r   Ú
ValueErrorÚformatÚ	ReplaceOpr.   r0   r1   )r   r   rB   rC   r(   r3   r4   s          r   r?   zTokenStreamRewriter.replaceK   s¦   € Ü�˜6Ñ! 8¨a¡<°¸!±¸VÄsÈ4Ï;É;×K]ÑK]ÓG^Ñ=^Ð_Ô`ÜØ9×@Ñ@ÀÈ6ÔSVÐW[×WbÑWb×WiÑWiÓSjÓkómð mà�^‰^˜H f¨d¯k©k¸4Ó@ˆØ—?‘? <Ó0ˆÜ! (›mˆÔØ�‰˜Õr   c                 ó>   — | j                  | j                  ||«       y r   ©Údeleter   )r   r'   s     r   ÚdeleteTokenzTokenStreamRewriter.deleteTokenT   ó   € Ø�‰�D×-Ñ-¨u°eÕ<r   c                 ó>   — | j                  | j                  ||«       y r   rQ   )r   r2   s     r   ÚdeleteIndexzTokenStreamRewriter.deleteIndexW   rT   r   c                 óž   — t        |t        «      r)| j                  ||j                  |j                  d«       y | j                  |||d«       y )NÚ )Ú
isinstancer   r?   r%   )r   r   rB   rC   s       r   rR   zTokenStreamRewriter.deleteZ   s<   € Ü�h¤Ô&Ø�L‰L˜ x×':Ñ':¸F×<MÑ<MÈrÕRà�L‰L˜ x°¸Õ<r   c                 ó:   — | j                   j                  |d«      S )Néÿÿÿÿ)r
   r   r!   s     r   ÚlastRewriteTokenIndexz)TokenStreamRewriter.lastRewriteTokenIndex`   s   € Ø×+Ñ+×/Ñ/°¸bÓAÐAr   c                 ó"   — || j                   |<   y r   )r
   )r   r   Úis      r   ÚsetLastRewriteTokenIndexz,TokenStreamRewriter.setLastRewriteTokenIndexc   s   € Ø56ˆ×$Ñ$ \Ò2r   c                 ó:   — | j                   j                  |g «      S r   )r	   Ú
setdefaultr!   s     r   r.   zTokenStreamRewriter.getProgramf   s   € Ø�}‰}×'Ñ'¨°bÓ9Ð9r   c                 ó|   — | j                  | j                  dt        | j                  j                  «      dz
  «      S )Nr   r,   )ÚgetTextr   r/   r   r   s    r   ÚgetDefaultTextz"TokenStreamRewriter.getDefaultTexti   s0   € Ø�|‰|˜D×5Ñ5°q¼#¸d¿k¹k×>PÑ>PÓ:QÐTUÑ:UÓVÐVr   ÚstartÚstopc                 ó2  — | j                   j                  |«      }|t        | j                  j                  «      dz
  kD  r"t        | j                  j                  «      dz
  }|dk  rd}|s| j                  j	                  ||«      S t        «       }| j                  |«      }|}t        ||k  |t        | j                  j                  «      k  f«      r¯|j                  |d«      }| j                  j                  |«      }	|€>|	j                  t        j                  k7  r|j                  |	j                  «       |dz  }n|j                  |«      }t        ||k  |t        | j                  j                  «      k  f«      rŒ¯|t        | j                  j                  «      dz
  k(  r`|j                  «       D ]M  }|j                   t        | j                  j                  «      dz
  k\  sŒ3|j                  |j                  «       ŒO |j#                  «       S )zK
        :return: the text in tokens[start, stop](closed interval)
        r,   r   N)r	   r   r/   r   rc   r   Ú _reduceToSingleOperationPerIndexÚallÚpopÚtyper   ÚEOFÚwriter(   ÚexecuteÚvaluesr2   Úgetvalue)
r   r   re   rf   r4   ÚbufÚ	indexToOpr^   r3   r'   s
             r   rc   zTokenStreamRewriter.getTextl   s¨  € ð —=‘=×$Ñ$ \Ó2ˆð ”#�d—k‘k×(Ñ(Ó)¨AÑ-Ò-Ü�t—{‘{×)Ñ)Ó*¨QÑ.ˆDØ�1Š9ØˆEñ  §¡× 3Ñ 3°E¸4Ó @Ð@Ü‹jˆØ×9Ñ9¸(ÓCˆ	ØˆÜ�1˜‘9˜a¤# d§k¡k×&8Ñ&8Ó"9Ñ9Ð:Ô;Ø—‘˜q $Ó'ˆBØ—K‘K—O‘O AÓ&ˆEØˆzØ—:‘:¤§¡Ò*¨C¯I©I°e·j±jÔ,AØ�Q‘‘à—J‘J˜s“O�ô �1˜‘9˜a¤# d§k¡k×&8Ñ&8Ó"9Ñ9Ð:Õ;ð ”3�t—{‘{×)Ñ)Ó*¨1Ñ,Ò,Ø×&Ñ&Ö(�Ø—8‘8œs 4§;¡;×#5Ñ#5Ó6°qÑ8Ó8¸#¿)¹)ÀBÇGÁGÕ:Lð )ð �|‰|‹~Ðr   c                 óÂ	  — t        |«      D �]w  \  }}t        |d u t        |t        j                  «       f«      rŒ0|d | D �cg c]  }t        |t        j
                  «      sŒ|‘Œ! }}|D ]¡  }|j                  |j                  k(  r;d ||j                  <   dj                  |j                  |j                  «      |_	        ŒWt        |j                  |j                  kD  |j                  |j                  k  f«      sŒ“d ||j                  <   Œ£ |d | D �cg c]  }t        |t        j                  «      sŒ|‘Œ! }}|D �]B  }t        |j                  |j                  k\  |j                  |j                  k  f«      rd ||j                  <   ŒOt        |j                  |j                  k  |j                  |j                  kD  f«      }	t        |j                  d u |j                  d u |	 f«      rud ||j                  <   t        |j                  |j                  «      |_        t        |j                  |j                  «      |_        t        dj                  |«      «       �Œ&|	r�Œ*t        dj                  ||«      «      ‚ �Œz t        |«      D �]è  \  }}t        |d u t        |t        j
                  «       f«      rŒ0|d | D �cg c]  }t        |t        j
                  «      sŒ|‘Œ! }
}t        |
«      D ]·  \  }}|j                  |j                  k(  r@t        |«      t        j
                  u r%|xj                  |j                  z  c_	        d ||<   Œ_|j                  |j                  k(  sŒyt        |«      t        j                   u sŒ•|j                  |j                  z   |_	        d ||<   Œ¹ |d | D �cg c]  }t        |t        j                  «      sŒ|‘Œ! }}|D ]•  }|j                  |j                  k(  r$|j                  |j                  z   |_	        d ||<   Œ@t        |j                  |j                  k\  |j                  |j                  k  f«      sŒ|t        dj                  ||«      «      ‚ �Œë i }t        |«      D ]=  \  }}|€Œ	|j#                  |j                  «      rt        d«      ‚|||j                  <   Œ? |S c c}w c c}w c c}w c c}w )Nz{}{}z
New rop {}z4replace op boundaries of {} overlap with previous {}z-insert op {} within boundaries of previous {}zshould be only one op per index)Ú	enumeraterL   rY   r   rO   r<   r2   r0   rN   r(   ri   Ú
last_indexÚminÚprintrM   rk   r-   r   )r   r4   r^   Úropr3   ÚinsertsÚiopÚprevReplacesÚprevRopÚ
isDisjointÚprevInsertsÚ
prev_indexÚprevIopÚreduceds                 r   rh   z4TokenStreamRewriter._reduceToSingleOperationPerIndexŒ   s  € ä ×)‰FˆAˆsÜ�C˜4�K¤Z°Ô5H×5RÑ5RÓ%SÐ!SÐTÔUØà$,¨R¨a¡LÓg¡L˜b´J¸rÔCV×CeÑCeÕ4f’r LˆGÐgÛ�Ø—9‘9 §	¡	Ò)Ø59�H˜S×1Ñ1Ñ2Ø%Ÿ}™}¨S¯X©X°s·x±xÓ@�C•HÜ˜#Ÿ)™) c§i¡iÑ/°·±¸c¿n¹nÑ1LÐMÕNØ59�H˜S×1Ñ1Ò2ð ð *2°"°1©Óg© 2¼ÀBÔH[×HeÑHeÕ9fšB¨ˆLÐgÜ'�Ü˜Ÿ™¨¯©Ñ2°G×4FÑ4FÈ#Ï.É.Ñ4XÐYÔZØ9=�H˜W×5Ñ5Ñ6ØÜ  '×"4Ñ"4°S·Y±YÑ">ÀÇÁÈcÏnÉnÑ@\Ð!]Ó^�
Ü˜Ÿ™¨Ð,¨c¯h©h¸$Ð.>ÀJÀÐOÔPØ9=�H˜W×5Ñ5Ñ6Ü # G§M¡M°3·9±9Ó =�C”IÜ%(¨×);Ñ);¸S¿^¹^Ó%L�C”NÜ˜,×-Ñ-¨cÓ2Ö3Û$Ü$Ð%[×%bÑ%bÐcfÐhoÓ%pÓqÐqò (ð *ô8   ×)‰FˆAˆsÜ�C˜4�K¤Z°Ô5H×5WÑ5WÓ%XÐ!XÐYÔZØØ(0°°!©Ók© "¼
À2ÔGZ×GiÑGiÕ8jš2¨ˆKÐkÜ'0°Ö'=Ñ#�
˜GØ—=‘= C§I¡IÒ-´$°w³-ÔCV×CeÑCeÑ2eØ—H’H §¡Ñ,•HØ+/�H˜ZÒ(Ø—]‘] c§i¡iÓ/´D¸³MÔEX×EfÑEfÒ4fØ&Ÿ|™|¨c¯h©hÑ6�C”HØ+/�H˜ZÒ(ð (>ð *2°"°1©Óg© 2¼ÀBÔH[×HeÑHeÕ9fšB¨ˆLÐgÛ#�Ø—9‘9 §	¡	Ò)Ø"Ÿx™x¨#¯(©(Ñ2�C”HØ"&�H˜Q‘KØÜ˜Ÿ	™	 S§Y¡YÑ.°·	±	¸S¿^¹^Ñ0KÐLÕMÜ$Ð%T×%[Ñ%[Ð\_ÐadÓ%eÓfÐfò $ð *ð* ˆÜ˜xÖ(‰EˆAˆrØˆz˜8Ø�{‰{˜2Ÿ8™8Ô$¬JÐ7XÓ,YÐ&YØ "ˆG�B—H‘HÒð )ð
 ˆùòg hùò hùò$ lùò hs0   ÁSÁ#SÄSÄ6SË	SË)SÎ;SÏSc                   ó$   — e Zd ZdZdd„Zd„ Zd„ Zy)ú$TokenStreamRewriter.RewriteOperation©r   r2   r(   r0   c                 ó<   — || _         || _        || _        d| _        y)zœ
            :type tokens: CommonTokenStream
            :param tokens:
            :param index:
            :param text:
            :return:
            r   Nr„   )r   r   r2   r(   s       r   r   z-TokenStreamRewriter.RewriteOperation.__init__Ê   s!   € ð !ˆDŒKØˆDŒJØˆDŒIØ$%ˆDÕ!r   c                 ó   — | j                   S )zc
            :type buf: StringIO.StringIO
            :param buf:
            :return:
            )r2   ©r   rq   s     r   rn   z,TokenStreamRewriter.RewriteOperation.execute×   s   € ð —:‘:Ðr   c                 óª   — dj                  | j                  j                  | j                  j	                  | j
                  «      | j                  «      S )Nz<{}@{}:"{}">)rN   r   Ú__name__r   r   r2   r(   r   s    r   Ú__str__z,TokenStreamRewriter.RewriteOperation.__str__ß   s<   € Ø!×(Ñ(¨¯©×)@Ñ)@À$Ç+Á+Ç/Á/ÐRV×R\ÑR\ÓB]Ð_c×_hÑ_hÓiÐir   N©rX   )r‰   Ú
__module__Ú__qualname__Ú	__slots__r   rn   rŠ   © r   r   ÚRewriteOperationrƒ   Ç   s   „ ØCˆ	ó	&ò	ó	jr   r�   c                   ó&   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ xZS )ú"TokenStreamRewriter.InsertBeforeOpc                 óD   •— t         t        j                  | �  |||«       y r   )r   r   r<   r   )r   r   r2   r(   r   s       €r   r   z+TokenStreamRewriter.InsertBeforeOp.__init__ä   s   ø€ ÜÔ%×4Ñ4°dÑDÀVÈUÐTXÕYr   c                 óR  — |j                  | j                  «       | j                  j                  | j                  «      j
                  t        j                  k7  r>|j                  | j                  j                  | j                  «      j                  «       | j                  dz   S r+   )rm   r(   r   r   r2   rk   r   rl   r‡   s     r   rn   z*TokenStreamRewriter.InsertBeforeOp.executeç   sf   € Ø�I‰I�d—i‘iÔ Ø�{‰{�‰˜tŸz™zÓ*×/Ñ/´5·9±9Ò<Ø—	‘	˜$Ÿ+™+Ÿ/™/¨$¯*©*Ó5×:Ñ:Ô;Ø—:‘: ‘>Ð!r   r‹   )r‰   rŒ   r�   r   rn   Ú__classcell__©r   s   @r   r<   r’   â   s   ø„ õ	Zö	"r   r<   c                   ó   — e Zd Zy)ú!TokenStreamRewriter.InsertAfterOpN)r‰   rŒ   r�   r�   r   r   r-   r˜   í   s   „ Ør   r-   c                   ó.   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zˆ xZS )úTokenStreamRewriter.ReplaceOpru   c                 óR   •— t         t        j                  | �  |||«       || _        y r   )r   r   rO   r   ru   )r   rB   rC   r   r(   r   s        €r   r   z&TokenStreamRewriter.ReplaceOp.__init__ó   s%   ø€ ÜÔ%×/Ñ/°Ñ?ÀÈÐRVÔWØ$ˆD�Or   c                 ón   — | j                   r|j                  | j                   «       | j                  dz   S r+   )r(   rm   ru   r‡   s     r   rn   z%TokenStreamRewriter.ReplaceOp.execute÷   s(   € Ø�yŠyØ—	‘	˜$Ÿ)™)Ô$Ø—?‘? QÑ&Ð&r   c                 óâ   — | j                   rcdj                  | j                  j                  | j                  «      | j                  j                  | j
                  «      | j                   «      S y )Nz<ReplaceOp@{}..{}:"{}">)r(   rN   r   r   r2   ru   r   s    r   rŠ   z%TokenStreamRewriter.ReplaceOp.__str__ü   sX   € Ø�yŠyØ0×7Ñ7¸¿¹¿¹ÈÏ
É
Ó8SÐUY×U`ÑU`×UdÑUdÐei×etÑetÓUuØ8<¿	¹	óCð Cð r   )r‰   rŒ   r�   rŽ   r   rn   rŠ   r•   r–   s   @r   rO   rš   ð   s   ø„ Ø ˆ	ô	%ò	'ö
	Cr   rO   )%r‰   rŒ   r�   rŽ   r   ÚPROGRAM_INIT_SIZEr   r   r   r   r"   r)   r$   r8   r:   r6   r@   rD   rF   rJ   r?   rS   rV   rR   r\   r_   r.   rd   Úintrc   rh   Úobjectr�   r<   r-   rO   r•   r–   s   @r   r   r      s  ø„ ØA€Ià$ÐØÐØ€Oô	*òòWð
 *>ó :ð :Nó ?ð 5Ió òBð ;Oó @òòDòHòZð K_ó Uòò=ò=ò=ð 2Fó Bò7ò:òWð¨#ð °Có ò@9ôvj˜6ô jô6	"Ð)ô 	"ô˜ô ôCÐ$÷ Cð Cr   r   N)Úior   Úantlr4.Tokenr   Úantlr4.CommonTokenStreamr   r    r   r�   r   r   Ú<module>r¤      s    ðõ Ý å 6ôrC˜&õ rCr   