Ë
    :vžj—-  ã                   óî  — U d dl mZmZmZmZmZmZmZ ddlm	Z	m
Z
mZ ddlmZmZmZmZmZ ddlmZmZmZmZ ddlmZmZmZ ddlmZ ddlmZ dd	lm Z m!Z!m"Z"m#Z# erdd
l$m%Z% d„ Z&d„ Z'i Z(de)d<    G d„ de«      Z*d*d„Z+d„ Z, G d„ d«      Z-defd„Z.de defd„Z/d+de de!defd„Z0e0e(d<    G d„ d«      Z1de de!fd„Z2d „ Z3de de!fd!„Z4de de!dejj                  fd"„Z6 G d#„ d$«      Z7e6e(d%<   e7e(d&<   d'e"d(e#fd)„Z8y),é    )ÚAnyÚCallableÚDictÚOptionalÚ
CollectionÚUnionÚTYPE_CHECKINGé   )ÚConfigurationErrorÚGrammarErrorÚassert_config)Úget_regexp_widthÚ	SerializeÚTextOrSliceÚ	TextSliceÚ	LarkInput)ÚLexerThreadÚ
BasicLexerÚContextualLexerÚLexer)ÚearleyÚxearleyÚcyk)ÚLALR_Parser)ÚTree)Ú	LexerConfÚ
ParserConfÚ_ParserArgTypeÚ_LexerArgType)ÚParseTableBasec                 óª   ‡ — t        ‰ dd«      }|dk(  r‰ S |dk(  r G ˆ fd„dt        «      }|S |dk(  r G ˆ fd„dt        «      }|S t        d	|› d
�«      ‚)NÚ__future_interface__r   é   r
   c                   ó   •— e Zd Zˆ fd„Zd„ Zy)ú(_wrap_lexer.<locals>.CustomLexerWrapper1c                 ó    •—  ‰|«      | _         y ©N©Úlexer©ÚselfÚ
lexer_confÚlexer_classs     €úf/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/lark/parser_frontends.pyÚ__init__z1_wrap_lexer.<locals>.CustomLexerWrapper1.__init__   ó   ø€ Ù(¨Ó4�•
ó    c                 óÚ   — t        |j                  t        «      r%|j                  j                  «       st	        d«      ‚|j                  |_        | j
                  j                  ||«      S )Nz0Interface=1 Custom Lexer don't support TextSlice©Ú
isinstanceÚtextr   Úis_complete_textÚ	TypeErrorr)   Úlex©r+   Úlexer_stateÚparser_states      r.   r8   z,_wrap_lexer.<locals>.CustomLexerWrapper1.lex   sR   € Ü˜k×.Ñ.´	Ô:À;×CSÑCS×CdÑCdÔCfÜ#Ð$VÓWÐWØ#.×#3Ñ#3�Ô Ø—z‘z—~‘~ k°<Ó@Ð@r1   N©Ú__name__Ú
__module__Ú__qualname__r/   r8   ©r-   s   €r.   ÚCustomLexerWrapper1r%      s   ø„ ô5óAr1   rA   c                   ó   •— e Zd Zˆ fd„Zd„ Zy)ú(_wrap_lexer.<locals>.CustomLexerWrapper0c                 ó    •—  ‰|«      | _         y r'   r(   r*   s     €r.   r/   z1_wrap_lexer.<locals>.CustomLexerWrapper0.__init__!   r0   r1   c                 ó(  — t        |j                  t        «      rT|j                  j                  «       st	        d«      ‚| j
                  j                  |j                  j                  «      S | j
                  j                  |j                  «      S )Nz0Interface=0 Custom Lexer don't support TextSlicer3   r9   s      r.   r8   z,_wrap_lexer.<locals>.CustomLexerWrapper0.lex$   sh   € Ü˜k×.Ñ.´	Ô:Ø&×+Ñ+×<Ñ<Ô>Ü'Ð(ZÓ[Ð[ØŸ:™:Ÿ>™>¨+×*:Ñ*:×*?Ñ*?Ó@Ð@Ø—z‘z—~‘~ k×&6Ñ&6Ó7Ð7r1   Nr<   r@   s   €r.   ÚCustomLexerWrapper0rC       s   ø„ ô5ó8r1   rF   z#Unknown __future_interface__ value z, integer 0-2 expected)Úgetattrr   Ú
ValueError)r-   Úfuture_interfacerA   rF   s   `   r.   Ú_wrap_lexerrJ      ss   ø€ Ü˜{Ð,BÀAÓFÐØ˜1ÒØÐØ	˜QÒ	ö	A¤%ô 	Að #Ð"Ø	˜QÒ	ö		8¤%ô 		8ð #Ð"äÐ>Ð?OÐ>PÐPfÐgÓhÐhr1   c                 óð   — t        j                  | d   |«      }|xr |j                  j                  d«      xs t        }|j                  | d   |||j
                  «      }||_        t        ||||¬«      S )NÚparser_confr   Úparser)rM   )r   ÚdeserializeÚ_pluginsÚgetr   ÚdebugÚ	callbacksÚParsingFrontend)ÚdataÚmemor,   rR   ÚoptionsrL   ÚclsrM   s           r.   Ú_deserialize_parsing_frontendrX   /   sn   € Ü×(Ñ(¨¨mÑ)<¸dÓC€KØÒ:�w×'Ñ'×+Ñ+¨MÓ:Ò
J¼{€CØ�_‰_˜T (™^¨T°9¸g¿m¹mÓL€FØ%€KÔÜ˜: {°GÀFÔKÐKr1   z/Dict[str, Callable[[LexerConf, Any, Any], Any]]Ú_parser_creatorsc                   ó”   — e Zd ZU dZeed<   eed<   eed<   ddedefd„Zdd„Z	de
e   d	eeedf   fd
„Zdde
e   fd„Zdde
e   fd„Zy)rS   )r,   rL   rM   r,   rL   rV   Nc                 ó²  — || _         || _        || _        |r|| _        nPt        j                  |j                  «      }|€ J dj                  |j                  «      «       ‚ ||||«      | _        |j                  }d| _	        |dv r|j                  �J ‚d| _	        y t        |t        «      r)t        |t        «      sJ ‚ t        |«      |«      | _        nPt        |t"        «      r5t$        t&        dœ|   } ||| j                  |j                  |«      | _        nt)        d«      ‚|j                  r&t+        | j                   |j                  «      | _        y y )Nz&{} is not supported in standalone modeF©ÚdynamicÚdynamic_completeT©ÚbasicÚ
contextualz&Bad value for lexer_type: {lexer_type})rL   r,   rV   rM   rY   rP   Úparser_typeÚformatÚ
lexer_typeÚ
skip_lexerÚpostlexr4   ÚtypeÚ
issubclassr   rJ   r)   ÚstrÚcreate_basic_lexerÚcreate_contextual_lexerr7   ÚPostLexConnector)r+   r,   rL   rV   rM   Úcreate_parserrd   Úcreate_lexers           r.   r/   zParsingFrontend.__init__A   sN  € Ø&ˆÔØ$ˆŒØˆŒñ Ø ˆD�Kä,×0Ñ0°×1HÑ1HÓIˆMØ Ð,ð Ð.V×.]Ñ.]Ø×+Ñ+ó/ó Ð,ñ (¨
°KÀÓIˆDŒKð  ×*Ñ*ˆ
ØˆŒØÐ8Ñ8Ø×%Ñ%Ð-Ð-Ð-Ø"ˆDŒOØä�j¤$Ô'Ü˜j¬%Ô0Ð0Ð0Ø0œ ZÓ0°Ó<ˆD�JÜ˜
¤CÔ(ä+Ü5ñð ñˆLñ & j°$·+±+¸z×?QÑ?QÐSZÓ[ˆD�JäÐDÓEÐEà×ÒÜ)¨$¯*©*°j×6HÑ6HÓIˆD�Jð r1   c                 óð   — |€6| j                   j                  }t        |«      dkD  rt        d|«      ‚|\  }|S || j                   j                  vr%t        d|›d| j                   j                  ›�«      ‚|S )Nr
   z]Lark initialized with more than 1 possible start rule. Must specify which start rule to parsezUnknown start rule z. Must be one of )rL   ÚstartÚlenr   )r+   rp   Ústart_declss      r.   Ú_verify_startzParsingFrontend._verify_startg   sˆ   € Øˆ=Ø×*Ñ*×0Ñ0ˆKÜ�;Ó !Ò#Ü(ð  *Ið  KVó  Wð  WØ ‰GˆEð ˆð ˜$×*Ñ*×0Ñ0Ñ0Ý$ÒSXÐZ^×ZjÑZj×ZpÒZpÐ%qÓrÐrØˆr1   r5   Úreturnc                 ód  — | j                   xr% | j                   j                  j                  d«      xs t        }| j                  r|S |€ || j
                  d «      S t        |t        t        t        f«      r|j                  | j
                  |«      S |j                  | j
                  |«      S )Nr   )rV   rO   rP   r   re   r)   r4   ri   Úbytesr   Ú	from_textÚfrom_custom_input)r+   r5   rW   s      r.   Ú_make_lexer_threadz"ParsingFrontend._make_lexer_threadq   s‰   € Ø�|‰|ÒH §¡× 5Ñ 5× 9Ñ 9¸-Ó HÒXÌ[ˆØ�?Š?ØˆKØˆ<Ù�t—z‘z 4Ó(Ð(Ü�dœS¤%¬Ð3Ô4Ø—=‘= §¡¨TÓ2Ð2Ø×$Ñ$ T§Z¡Z°Ó6Ð6r1   c                 óH  — | j                   j                  dv rCt        |t        «      r3|j	                  «       s#t        d| j                   j                  › d�«      ‚| j                  |«      }|€i nd|i}| j                  |«      } | j                  j                  ||fi |¤ŽS )Nr\   zLexer z does not support text slices.Úon_error)
r,   rd   r4   r   r6   r7   rs   ry   rM   Úparse)r+   r5   rp   r{   Úchosen_startÚkwÚstreams          r.   r|   zParsingFrontend.parse{   s™   € Ø�?‰?×%Ñ%Ð)HÑHÜ˜$¤	Ô*°4×3HÑ3HÔ3JÜ &¨¯©×)CÑ)CÐ(DÐDbÐ cÓdÐdà×)Ñ)¨%Ó0ˆØÐ#‰R¨*°hÐ)?ˆØ×(Ñ(¨Ó.ˆØ ˆt�{‰{× Ñ  ¨Ñ<¸Ñ<Ð<r1   c                 óÆ   — | j                  |«      }| j                  j                  dk7  rt        d«      ‚| j	                  |«      }| j
                  j                  ||«      S )NÚlalrz<parse_interactive() currently only works with parser='lalr' )rs   rL   rb   r   ry   rM   Úparse_interactive)r+   r5   rp   r}   r   s        r.   r‚   z!ParsingFrontend.parse_interactive…   s[   € ð ×)Ñ)¨%Ó0ˆØ×Ñ×'Ñ'¨6Ò1Ü$Ð%cÓdÐdØ×(Ñ(¨Ó.ˆØ�{‰{×,Ñ,¨V°\ÓBÐBr1   r'   )NN)r=   r>   r?   Ú__serialize_fields__r   Ú__annotations__r   r   r/   rs   r   r   r   r   ry   r|   r   r‚   © r1   r.   rS   rS   :   s   … Ø@ÐàÓØÓØƒLñ$J 9ð $J¸:ó $JóLð7 x°	Ñ':ð 7¸uÀYÐP[Ð]aÐEaÑ?bó 7ñ=˜( 9Ñ-ó =ñC h¨{Ñ&;ô Cr1   rS   rt   Nc                 óp   — t        | d«       t        |t        «      sddddœ|    }t        ||d| z  «       y y )N)r�   r   r   r_   )r`   r]   r^   )r`   z9Parser %r does not support lexer %%r, expected one of %%s)r   r4   rg   )rM   r)   Úexpecteds      r.   Ú_validate_frontend_argsrˆ   �   sK   € Ü�&Ð3Ô4Ü�eœTÔ"à+Ø>Øñð ñ	ˆô
 	�e˜XÐ'bÐekÑ'kÕlð #r1   c                 ój   — i }|D ]+  }t        | |j                  d «      }|€Œ|||j                  <   Œ- |S r'   )rG   Úname)ÚtransformerÚ	terminalsÚresultÚterminalÚcallbacks        r.   Ú_get_lexer_callbacksr�   š   s>   € Ø€FÛˆÜ˜;¨¯©°tÓ<ˆØÑØ$,ˆF�8—=‘=Ò!ð ð €Mr1   c                   ó   — e Zd Zd„ Zd„ Zy)rl   c                 ó    — || _         || _        y r'   )r)   Ú	postlexer)r+   r)   r“   s      r.   r/   zPostLexConnector.__init__£   s   € ØˆŒ
Ø"ˆ�r1   c                 óp   — | j                   j                  ||«      }| j                  j                  |«      S r'   )r)   r8   r“   Úprocess)r+   r:   r;   Úis       r.   r8   zPostLexConnector.lex§   s+   € Ø�J‰J�N‰N˜;¨Ó5ˆØ�~‰~×%Ñ% aÓ(Ð(r1   Nr<   r…   r1   r.   rl   rl   ¢   s   „ ò#ó)r1   rl   c                 ó`   — |xr |j                   j                  d«      xs t        } || «      S )Nr   )rO   rP   r   )r,   rM   rf   rV   rW   s        r.   rj   rj   ­   s,   € ØÒ9�w×'Ñ'×+Ñ+¨LÓ9Ò
H¼j€CÙˆz‹?Ðr1   r,   c           	      ó2  — |xr |j                   j                  d«      xs t        }|j                  }|j                  j                  «       D ��ci c]  \  }}|t        |j                  «       «      “Œ! }}}|r|j                  nd}	 || ||	¬«      S c c}}w )Nr   r…   )Úalways_accept)	rO   rP   r   Ú_parse_tableÚstatesÚitemsÚlistÚkeysr™   )
r,   rM   rf   rV   rW   Úparse_tableÚidxÚtr›   r™   s
             r.   rk   rk   ±   sŠ   € ØÒ>�w×'Ñ'×+Ñ+Ð,=Ó>Ò
RÄ?€CØ'-×':Ñ':€KØKV×K]ÑK]×KcÑKcÔKeÔ)fÑKeÁÀÀa¨#¬d°1·6±6³8«nÑ*<ÐKe€FÑ)fÙ>E W×%:Ò%:È2€MÙˆz˜6°Ô?Ð?ùó *gs   Á$BrL   c                 ó¦   — |r|j                   nd}|r|j                  nd}|xr |j                  j                  d«      xs t        } ||||¬«      S )NFr   )rQ   Ústrict)rQ   r£   rO   rP   r   )r,   rL   rV   rQ   r£   rW   s         r.   Úcreate_lalr_parserr¤   ¸   sK   € Ù$ˆG�MŠM¨%€EÙ&ˆW�^Š^¨E€FØÒ:�w×'Ñ'×+Ñ+¨MÓ:Ò
J¼{€CÙˆ{ %°Ô7Ð7r1   r�   c                   ó   — e Zd Zd„ Zdd„Zy)ÚEarleyRegexpMatcherc                 ó¬  — i | _         |j                  D ]–  }|j                  j                  «       }	 t	        |«      d   }|dk(  rt        d|«      ‚|j                  r|j                  d«      }|j                  j                  ||j                  «      | j                   |j                  <   Œ˜ y # t        $ r t        d|j                  ›d|›�«      ‚w xY w)Nr   z/Dynamic Earley doesn't allow zero-width regexpszBad regexp in token z: zutf-8)ÚregexpsrŒ   ÚpatternÚ	to_regexpr   r   rH   rŠ   Ú	use_bytesÚencodeÚ	re_moduleÚcompileÚg_regex_flags)r+   r,   r¡   ÚregexpÚwidths        r.   r/   zEarleyRegexpMatcher.__init__Ã   sÁ   € ØˆŒØ×%Ô%ˆAØ—Y‘Y×(Ñ(Ó*ˆFð]Ü(¨Ó0°Ñ3�ð ˜A’:Ü&Ð'XÐZ[Ó\Ð\Ø×#Ò#ØŸ™ wÓ/�à#-×#7Ñ#7×#?Ñ#?ÀÈ
×H`ÑH`Ó#aˆD�L‰L˜Ÿ™Ò ñ &øô ò TÝ"À1Ç6Ã6É6Ð#RÓSÐSðTús   ²B.Â.%Cc                 óT   — | j                   |j                     j                  ||«      S r'   )r¨   rŠ   Úmatch)r+   Útermr5   Úindexs       r.   r³   zEarleyRegexpMatcher.matchÓ   s"   € Ø�|‰|˜DŸI™IÑ&×,Ñ,¨T°5Ó9Ð9r1   N)r   )r=   r>   r?   r/   r³   r…   r1   r.   r¦   r¦   Â   s   „ òbô :r1   r¦   c                 óŠ   — | j                   rt        d«      ‚t        | «      }t        j                  | ||j
                  fi |¤ŽS )Nz7Earley's dynamic lexer doesn't support lexer_callbacks.)rR   r   r¦   r   ÚParserr³   )r,   rL   r~   Úearley_matchers       r.   Úcreate_earley_parser__dynamicr¹   ×   s?   € Ø×ÒÜÐTÓUÐUä(¨Ó4€NÜ�>‰>˜* k°>×3GÑ3GÑNÈ2ÑNÐNr1   c                 ó4   — | j                   |j                  k(  S r'   )rŠ   rg   )r´   Útokens     r.   Ú_match_earley_basicr¼   Þ   s   € Ø�9‰9˜Ÿ
™
Ñ"Ð"r1   c                 ó:   — t        j                  | |t        fi |¤ŽS r'   )r   r·   r¼   )r,   rL   r~   s      r.   Úcreate_earley_parser__basicr¾   á   s   € Ü�=‰=˜ [Ô2EÑLÈÑLÐLr1   c                 ó.  — |j                   dk(  }|r|j                  nd}|j                   dk7  r|j                  xs t        nd }i }| j                  dk(  rt
        }n!| j                  dk(  rd|d<   t
        }nt        } || |f||||j                  dœ|¤ŽS )	NÚresolveFÚforestr]   r^   TÚcomplete_lex)Úresolve_ambiguityrQ   Ú
tree_classÚordered_sets)Ú	ambiguityrQ   rÄ   r   rd   r¹   r¾   rÅ   )r,   rL   rV   rÃ   rQ   rÄ   ÚextraÚfs           r.   Úcreate_earley_parserrÉ   ä   s­   € Ø×)Ñ)¨YÑ6ÐÙ$ˆG�MŠM¨%€EØ/6×/@Ñ/@ÀHÒ/L�×#Ñ#Ò+¥tÐRV€Jà€EØ×Ñ 	Ò)Ü)‰Ø	×	Ñ	Ð"4Ò	4Ø $ˆˆnÑÜ)‰ä'ˆáˆZ˜ð ]Ð8IØ Z¸g×>RÑ>Rñ]ØV[ñ]ð ]r1   c                   ó&   — e Zd Zdd„Zd„ Zd„ Zd„ Zy)ÚCYK_FrontEndNc                 ón   — t        j                  |j                  «      | _        |j                  | _        y r'   )r   r·   ÚrulesrM   rR   )r+   r,   rL   rV   s       r.   r/   zCYK_FrontEnd.__init__ø   s%   € Ü—j‘j ×!2Ñ!2Ó3ˆŒà$×.Ñ.ˆ�r1   c                 ó�   — t        |j                  d «      «      }| j                  j                  ||«      }| j	                  |«      S r'   )r�   r8   rM   r|   Ú
_transform)r+   Úlexer_threadrp   ÚtokensÚtrees        r.   r|   zCYK_FrontEnd.parseý   s<   € Ü�l×&Ñ& tÓ,Ó-ˆØ�{‰{× Ñ  ¨Ó/ˆØ�‰˜tÓ$Ð$r1   c                 óî   — t        |j                  «       «      }|D ]B  }|j                  D �cg c]%  }t        |t        «      r| j                  |«      n|‘Œ' c}|_        ŒD | j                  |«      S c c}w r'   )r�   Úiter_subtreesÚchildrenr4   r   Ú_apply_callback)r+   rÒ   ÚsubtreesÚsubtreeÚcs        r.   rÏ   zCYK_FrontEnd._transform  sr   € Ü˜×*Ñ*Ó,Ó-ˆÛˆGØ_f×_oÒ_oÓpÑ_oÐZ[¼:ÀaÌÔ;N × 4Ñ 4°QÔ 7ÐTUÑ UÐ_oÑpˆGÕð  ð ×#Ñ# DÓ)Ð)ùò  qs   ­*A2c                 óT   —  | j                   |j                     |j                  «      S r'   )rR   ÚrulerÕ   )r+   rÒ   s     r.   rÖ   zCYK_FrontEnd._apply_callback	  s    € Ø(ˆt�~‰~˜dŸi™iÑ(¨¯©Ó7Ð7r1   r'   )r=   r>   r?   r/   r|   rÏ   rÖ   r…   r1   r.   rË   rË   ÷   s   „ ó/ò
%ò
*ó8r1   rË   r   r   rb   rd   c                 ó€   — t        |t        «      sJ ‚t        |t        «      sJ ‚| |_        ||_        t        |||«      S r'   )r4   r   r   rb   rd   rS   )rb   rd   r,   rL   rV   s        r.   Ú_construct_parsing_frontendrÝ     sC   € ô �j¤)Ô,Ð,Ð,Ü�k¤:Ô.Ð.Ð.Ø)€KÔØ&€JÔÜ˜: {°GÓ<Ð<r1   )rt   Nr'   )9Útypingr   r   r   r   r   r   r	   Ú
exceptionsr   r   r   Úutilsr   r   r   r   r   r)   r   r   r   r   Úparsersr   r   r   Úparsers.lalr_parserr   rÒ   r   Úcommonr   r   r   r   Úparsers.lalr_analysisr    rJ   rX   rY   r„   rS   rˆ   r�   rl   rj   rk   r¤   r¦   r¹   r¼   r¾   r·   rÉ   rË   rÝ   r…   r1   r.   Ú<module>rå      s\  ðß R× RÒ Rç GÑ Gß QÕ Qß BÓ Bß )Ñ )Ý ,Ý ß HÓ HáÝ5ò
iò<Lð GIÐ ÐCÓ HôRC�iô RCójmò÷)ñ )ðÀ
ó ð@¨	ð @ÐP_ó @ñ8 9ð 8¸:ð 8ÐXcó 8ð .Ð �Ñ ÷:ñ :ð*O¨ið OÀjó Oò#ðM¨Ið MÀJó Mð] Yð ]¸Zð ]ÐU[×UbÑUbó ]÷&8ñ 8ð, 2Ð �Ñ Ø&Ð �Ñ ð=Ø#ð=à!ô=r1   