Ë
    ÍÍ:j@  ã                   óî   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d d	lmZmZ d d
lmZ d dlmZ d dlmZmZmZ dZdZ G d„ de«      Z G d„ de«      Z  G d„ de!«      Z"y)é    )ÚCommonTokenStream)ÚInputStream)ÚParserRuleContext)ÚLexer)ÚListTokenSource)ÚToken)ÚBailErrorStrategy)ÚRecognitionExceptionÚParseCancellationException)ÚTagChunkÚ	TextChunk)ÚRuleTagToken)ÚTokenTagToken)Ú	ParseTreeÚTerminalNodeÚRuleNodeNc                   ó$   ‡ — e Zd Zdefˆ fd„Zˆ xZS )ÚCannotInvokeStartRuleÚec                 ó$   •— t         ‰| �  |«       y ©N)ÚsuperÚ__init__)Úselfr   Ú	__class__s     €úx/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/antlr4/tree/ParseTreePatternMatcher.pyr   zCannotInvokeStartRule.__init__S   s   ø€ Ü‰Ñ˜Õó    )Ú__name__Ú
__module__Ú__qualname__Ú	Exceptionr   Ú__classcell__)r   s   @r   r   r   Q   s   ø„ ð˜÷ ñ r   r   c                   ó   — e Zd Zy)Ú"StartRuleDoesNotConsumeFullPatternN)r   r   r    © r   r   r$   r$   V   s   „ àr   r$   c                   óÊ   — e Zd ZdZdedefd„Zdededefd„Zd	e	d
ede
fd„Zd	e	d
efd„Zd	e	d
ede
fd„Zd	e	d
efd„Zd
ede
fd„Zd	e	de	defd„Zd„ Zd	e	fd„Zd
efd„Zd
efd„Zy)ÚParseTreePatternMatcher©ÚlexerÚparserÚstartÚstopÚescaper)   r*   c                 óJ   — || _         || _        d| _        d| _        d| _        y )Nú<ú>ú\r(   )r   r)   r*   s      r   r   z ParseTreePatternMatcher.__init__b   s%   € ØˆŒ
ØˆŒØˆŒ
ØˆŒ	Øˆ�r   r+   r,   Ú
escapeLeftc                 óš   — |�t        |«      dk(  rt        d«      ‚|�t        |«      dk(  rt        d«      ‚|| _        || _        || _        y )Nr   zstart cannot be null or emptyzstop cannot be null or empty)Úlenr!   r+   r,   r-   )r   r+   r,   r2   s       r   ÚsetDelimitersz%ParseTreePatternMatcher.setDelimiterss   sM   € Øˆ=œC ›J¨šMÜÐ;Ó<Ð<Øˆ<œ3˜t›9 aš<ÜÐ:Ó;Ð;ØˆŒ
ØˆŒ	Ø ˆ�r   ÚtreeÚpatternÚpatternRuleIndexc                 óJ   — | j                  ||«      }| j                  ||«      S r   )ÚcompileTreePatternÚmatches©r   r6   r7   r8   Úps        r   ÚmatchesRuleIndexz(ParseTreePatternMatcher.matchesRuleIndex}   s&   € Ø×#Ñ# GÐ-=Ó>ˆØ�|‰|˜D !Ó$Ð$r   c                 óT   — | j                  ||j                  t        «       «      }|d u S r   )Ú	matchImplÚpatternTreeÚdict)r   r6   r7   ÚmismatchedNodes       r   ÚmatchesPatternz&ParseTreePatternMatcher.matchesPattern„   s'   € ØŸ™¨¨g×.AÑ.AÄ4Ã6ÓJˆØ Ð%Ð%r   c                 óJ   — | j                  ||«      }| j                  ||«      S r   )r:   ÚmatchPatternr<   s        r   ÚmatchRuleIndexz&ParseTreePatternMatcher.matchRuleIndex�   s(   € Ø×#Ñ# GÐ-=Ó>ˆØ× Ñ   qÓ)Ð)r   c                 ór   — t        «       }| j                  ||j                  |«      }ddlm}  |||||«      S )Nr   )ÚParseTreeMatch)rB   r@   rA   Úantlr4.tree.ParseTreeMatchrI   )r   r6   r7   ÚlabelsrC   rI   s         r   rF   z$ParseTreePatternMatcher.matchPattern—   s5   € Ü“ˆØŸ™¨¨g×.AÑ.AÀ6ÓJˆÝ=Ù˜d G¨V°^ÓDÐDr   c                 ót  — | j                  |«      }t        |«      }t        |«      }ddlm}  || j
                  j                  | j
                  j                  | j
                  j                  | j
                  j                  «       |«      }d }	 |j                  t        «       «       |j                  |«      }|j%                  d«      t&        j(                  k7  r
t+        «       ‚ddlm}
  |
| |||«      S # t        $ r}	|	j                  ‚d }	~	wt        $ r}	|	‚d }	~	wt         $ r}	t#        |	«      ‚d }	~	ww xY w)Nr   )ÚParserInterpreteré   )ÚParseTreePattern)Útokenizer   r   Úantlr4.ParserInterpreterrM   r*   ÚgrammarFileNameÚ
tokenNamesÚ	ruleNamesÚgetATNWithBypassAltsÚsetErrorHandlerr	   Úparser   Úcauser
   r!   r   ÚLAr   ÚEOFr$   Úantlr4.tree.ParseTreePatternrO   )r   r7   r8   Ú	tokenListÚtokenSrcÚtokensrM   ÚparserInterpr6   r   rO   s              r   r:   z*ParseTreePatternMatcher.compileTreePattern¡   s  € Ø—M‘M 'Ó*ˆ	Ü" 9Ó-ˆÜ" 8Ó,ˆÝ>Ù(¨¯©×)DÑ)DÀdÇkÁk×F\ÑF\Ø $§¡× 5Ñ 5°t·{±{×7WÑ7WÓ7YÐZ`óbˆàˆð	+Ø×(Ñ(Ô):Ó)<Ô=Ø×%Ñ%Ð&6Ó7ˆDð �9‰9�Q‹<œŸ™Ò"Ü4Ó6Ð6åAÙ  gÐ/?ÀÓFÐFøô *ò 	Ø—'‘'ˆMûÜ#ò 	ØˆGûÜò 	+Ü'¨Ó*Ð*ûð	+ús0   Â*C8 Ã8	D7ÄDÄD7ÄDÄD7Ä'D2Ä2D7rA   rK   c                 ó~  — |€t        d«      ‚|€t        d«      ‚t        |t        «      rÝt        |t        «      rÍd }|j                  j                  |j                  j                  k(  r˜t        |j                  t
        «      rT|j                  }| j                  ||j                  |«       |j                  �G| j                  ||j                  |«       |S |j                  «       |j                  «       k(  r	 |S |€|}|S |€|}|S t        |t        «      �r$t        |t        «      �rd }| j                  |«      }|�}d }|j                  j                  |j                  j                  k(  rH| j                  ||j                  |«       |j                  �| j                  ||j                  |«       |S |€|}|S |j                  «       |j                  «       k7  r|€|}|S |j                  «       }t!        d|«      D ]9  }	| j#                  |j%                  |	«      |j%                  |	«      |«      }
|
€Œ7|
c S  |S |S )Nztree cannot be nullzpatternTree cannot be nullr   )r!   Ú
isinstancer   ÚsymbolÚtyper   ÚmapÚ	tokenNameÚlabelÚgetTextr   ÚgetRuleTagTokenÚruleContextÚ	ruleIndexÚruleNameÚgetChildCountÚranger@   ÚgetChild)r   r6   rA   rK   rC   ÚtokenTagTokenÚruleTagTokenÚmÚnÚiÚ
childMatchs              r   r@   z!ParseTreePatternMatcher.matchImplÃ   s?  € Øˆ<ÜÐ1Ó2Ð2ØÐÜÐ8Ó9Ð9ô �dœLÔ)¬j¸ÄlÔ.TØ!ˆNà�{‰{×Ñ ;×#5Ñ#5×#:Ñ#:Ò:Ü˜{×1Ñ1´=ÔBØ$/×$6Ñ$6�Mà—H‘H˜V ]×%<Ñ%<¸dÔCØ$×*Ñ*Ð6ØŸ™ ¨×)<Ñ)<¸dÔCð "Ð!ð —\‘\“^ [×%8Ñ%8Ó%:Ò:àð "Ð!ð &Ð-Ø)-˜ð
 "Ð!ð "Ð)Ø%)�Nà!Ð!ä�dÔ-Õ.´:¸kÔK\Õ3]Ø!ˆNà×/Ñ/°Ó<ˆLØÐ'Ø�Ø×#Ñ#×-Ñ-°×1HÑ1H×1RÑ1RÒRà—H‘H˜V \×%:Ñ%:¸DÔAØ#×)Ñ)Ð5ØŸ™ ¨×);Ñ);¸TÔBð
 &Ð%ð &Ð-Ø)-˜à%Ð%ð ×!Ñ!Ó# [×%>Ñ%>Ó%@Ò@Ø!Ð)Ø%)�NØ%Ð%à×"Ñ"Ó$ˆAÜ˜1˜a“[ò &�Ø!Ÿ^™^¨D¯M©M¸!Ó,<¸k×>RÑ>RÐSTÓ>UÐW]Ó^�
ØÑ)Ø%Ò%ð&ð
 "Ð!ð ˆr   c                 ól   — |j                  |d «      }|€t        «       }|||<   |j                  |«       y r   )ÚgetÚlistÚappend)r   rK   rf   r6   Úvs        r   rd   zParseTreePatternMatcher.map  s2   € Ø�J‰J�u˜dÓ#ˆØˆ9Ü“ˆAØˆF�5‰MØ	�‰��r   c                 óö   — t        |t        «      ri|j                  «       dk(  rVt        |j                  d«      t        «      r7|j                  d«      }t        |j
                  t        «      r|j
                  S y )NrN   r   )ra   r   rl   rn   r   rb   r   )r   r6   Úcs      r   rh   z'ParseTreePatternMatcher.getRuleTagToken  sW   € Ü�tœXÔ'Ø×!Ñ!Ó# QÒ&¬:°d·m±mÀAÓ6FÌÔ+VØ—M‘M !Ó$�Ü˜qŸx™x¬Ô7ØŸ8™8�OØr   c                 ó  — | j                  |«      }t        «       }|D �]_  }t        |t        «      �r›|j                  d   j                  «       r�| j                  j                  |j                  «      }|t        j                  k(  r't        dt        |j                  «      z   dz   |z   «      ‚|j                  t        |j                  ||j                  «      «       ŒÂ|j                  d   j                  «       rª| j                  j!                  |j                  «      }|dk(  r't        dt        |j                  «      z   dz   |z   «      ‚| j                  j#                  «       j$                  |   }|j                  t'        |j                  ||j                  «      «       �Œ‰t        dt        |j                  «      z   dz   |z   «      ‚| j(                  j+                  t-        |j.                  «      «       | j(                  j1                  «       }|j2                  t        j4                  k7  s�Œ|j                  |«       | j(                  j1                  «       }|j2                  t        j4                  k7  rŒI�Œb |S )Nr   zUnknown token z in pattern: éÿÿÿÿzUnknown rule zinvalid tag: )Úsplitrw   ra   r   ÚtagÚisupperr*   ÚgetTokenTyper   ÚINVALID_TYPEr!   Ústrrx   r   rf   ÚislowerÚgetRuleIndexrU   ÚruleToTokenTyper   r)   ÚsetInputStreamr   ÚtextÚ	nextTokenrc   rZ   )	r   r7   Úchunksr^   ÚchunkÚttyperj   ÚruleImaginaryTokenTypeÚts	            r   rP   z ParseTreePatternMatcher.tokenize  sÚ  € à—‘˜GÓ$ˆô “ˆØó 	/ˆEÜ˜5¤(Õ,à—9‘9˜Q‘<×'Ñ'Ô)Ø ŸK™K×4Ñ4°U·Y±YÓ?�EØœe×0Ñ0Ò0Ü'Ð(8¼3¸u¿y¹y»>Ñ(IÈOÑ([Ð^eÑ(eÓfÐfØ—M‘M¤-°·	±	¸5À%Ç+Á+Ó"NÕOØ—Y‘Y˜q‘\×)Ñ)Ô+Ø $§¡× 8Ñ 8¸¿¹Ó C�IØ  "’}Ü'¨¼#¸e¿i¹i».Ñ(HÈ?Ñ(ZÐ]dÑ(dÓeÐeØ-1¯[©[×-MÑ-MÓ-O×-_Ñ-_Ð`iÑ-jÐ*Ø—M‘M¤,¨u¯y©yÐ:PÐRW×R]ÑR]Ó"^Ö_ä# O´c¸%¿)¹)³nÑ$DÀÑ$VÐY`Ñ$`ÓaÐaà—
‘
×)Ñ)¬+°e·j±jÓ*AÔBØ—J‘J×(Ñ(Ó*�Ø—f‘fœeŸi™iÔ'Ø—M‘M !Ô$ØŸ
™
×,Ñ,Ó.�Að —f‘fœeŸi™iÕ'ð'	/ð, ˆr   c                 óº  — d}t        |«      }t        «       }t        «       }t        «       }||k  �rT||j                  | j                  | j                  z   |«      k(  r/|t        | j                  «      t        | j                  «      z   z  }nò||j                  | j                  | j
                  z   |«      k(  r/|t        | j                  «      t        | j
                  «      z   z  }n—||j                  | j                  |«      k(  r*|j                  |«       |t        | j                  «      z  }nN||j                  | j
                  |«      k(  r*|j                  |«       |t        | j
                  «      z  }n|dz  }||k  r�ŒTt        |«      }|t        |«      kD  rt        d|z   «      ‚|t        |«      k  rt        d|z   «      ‚t        d|«      D ]  }||   ||   k\  sŒt        d|z   «      ‚ |dk(  r|j                  t        |«      «       |dkD  r*|d   dkD  r"|d|d    }	|j                  t        |	«      «       t        d|«      D ]¾  }|||   t        | j                  «      z   ||    }
|
}d }|
j                  d«      }|dk\  r|
d| }|
|dz   t        |
«       }|j                  t        ||«      «       |dz   t        |«      k  sŒ�|||   t        | j
                  «      z   ||dz       }	|j                  t        |	«      «       ŒÀ |dkD  rB||dz
     t        | j
                  «      z   }||k  r||| }	|j                  t        |	«      «       t        dt        |«      «      D ]n  }||   }t        |t        «      sŒ|j                  j                  | j                  d«      }t        |«      t        |j                  «      k  sŒat        |«      ||<   Œp |S )Nr   rN   zunterminated tag in pattern: zmissing start tag in pattern: z(tag delimiters out of order in pattern: ú:Ú )r4   rw   Úfindr-   r+   r,   rx   r!   rm   r   Úaddr   ra   rˆ   Úreplace)r   r7   r=   rr   rŠ   ÚstartsÚstopsÚntrs   rˆ   r   ÚruleOrTokenrf   ÚcolonÚafterLastTagr{   Ú	unescapeds                    r   r~   zParseTreePatternMatcher.split2  so  € ØˆÜ�‹LˆÜ“ˆä“ˆÜ“ˆØ�!‹eØ�G—L‘L §¡¨t¯z©zÑ!9¸1Ó=Ò=Ø”S˜Ÿ™Ó%¬¨D¯J©J«Ñ7Ñ7‘Ø�g—l‘l 4§;¡;°·±Ñ#:¸AÓ>Ò>Ø”S˜Ÿ™Ó%¬¨D¯I©I«Ñ6Ñ6‘Ø�g—l‘l 4§:¡:¨qÓ1Ò1Ø—‘˜aÔ Ø”S˜Ÿ™“_Ñ$‘Ø�g—l‘l 4§9¡9¨aÓ0Ò0Ø—‘˜Q”Ø”S˜Ÿ™“^Ñ#‘à�Q‘�ð �!Œeô �‹[ˆà”�E“
Š?ÜÐ;¸gÑEÓFÐFØ”�E“
Š?ÜÐ<¸wÑFÓGÐGä�q˜"“ò 	VˆAØ�a‰y˜E !™HÓ$ÜÐ JÈWÑ TÓUÐUð	Vð
 ˆqŠ5Ø�M‰Mœ) GÓ,Ô-àˆaŠ4�F˜1‘I˜a’KØ˜1˜V A™YÐ'ˆDØ�J‰J”y “Ô'ä�q˜"“ò 	/ˆAà˜& ™)¤c¨$¯*©*£oÑ5¸¸a¹ÐAˆCØˆKØˆEØ—H‘H˜S“MˆEØ˜ŠzØ˜A˜e˜�Ø! %¨¡'¬C°«HÐ5�Ø�M‰Mœ( 5¨+Ó6Ô7Ø�‰s”S˜“[Ó à˜u Q™x¬#¨d¯i©i«.Ñ8¸6À!ÀaÁ%¹=ÐI�Ø—‘œi¨›oÕ.ð	/ð �Š6Ø   a¡™=¬3¨t¯y©y«>Ñ9ˆLØ˜aÒØ˜|¨aÐ0�Ø—‘œi¨›oÔ.ô �qœ#˜f›+Ó&ò 	5ˆAØ�q‘	ˆAÜ˜1œiÕ)ØŸF™FŸN™N¨4¯;©;¸Ó;�	Ü�y“>¤C¨¯©£KÓ/Ü )¨)Ó 4�F˜1’Ið	5ð ˆr   N)r   r   r    Ú	__slots__r   ÚParserr   rƒ   r5   r   Úintr>   rO   rD   rG   rF   r:   rB   r@   rd   rh   rP   r~   r%   r   r   r'   r'   [   sð   „ Ø>€Ið˜Uð ¨6ó ð"! #ð !¨Cð !¸Có !ð% Ið %°sð %ÈSó %ð& )ð &Ð5Eó &ð* )ð *°Sð *È3ó *ðE 	ð EÐ3Có EðG¨ð G¸só GðD>˜Yð >°Ið >Àdó >ò@ð 9ó ð˜só ð>D˜Cô Dr   r'   )#Úantlr4.CommonTokenStreamr   Úantlr4.InputStreamr   Úantlr4.ParserRuleContextr   Úantlr4.Lexerr   Úantlr4.ListTokenSourcer   Úantlr4.Tokenr   Úantlr4.error.ErrorStrategyr	   Úantlr4.error.Errorsr
   r   Úantlr4.tree.Chunkr   r   Úantlr4.tree.RuleTagTokenr   Úantlr4.tree.TokenTagTokenr   Úantlr4.tree.Treer   r   r   r�   rO   r!   r   r$   Úobjectr'   r%   r   r   ú<module>r¬      sb   ðõ@ 7Ý *Ý 6Ý Ý 2Ý Ý 8ß Pß 1Ý 1Ý 3ß >Ñ >ð 
€ØÐ ô˜Iô ô
	¨ô 	ô
[˜fõ [r   