Ë
    :vžjï  ã                   ó¶   — d Z ddlmZmZmZ ddlmZmZ ddlm	Z	 ddl
mZmZ ddlmZmZmZ dd	lmZ dd
lmZmZmZ ddlmZmZ  G d„ de	«      Z G d„ d«      Zy)z(This module implements a LALR(1) Parser
é    )ÚDictÚAnyÚOptionalé   )ÚTokenÚLexerThread)Ú	Serialize)Ú
ParserConfÚParserCallbacksé   )ÚLALR_AnalyzerÚIntParseTableÚParseTableBase)ÚInteractiveParser)ÚUnexpectedCharactersÚUnexpectedInputÚUnexpectedToken)ÚParserStateÚ	ParseConfc                   óh   — e Zd Zddededefd„Zedd„«       Zddede	e
ef   fd	„Zd
ede
fd„Zdd„Zy)ÚLALR_ParserÚparser_confÚdebugÚstrictc                 óÀ   — t        |||¬«      }|j                  «        |j                  }|j                  | _        || _        t        |j                  ||«      | _        y )N)r   r   )r   Úcompute_lalrÚ	callbacksÚparse_tableÚ_parse_tabler   Ú_ParserÚparser)Úselfr   r   r   Úanalysisr   s         úi/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/lark/parsers/lalr_parser.pyÚ__init__zLALR_Parser.__init__   sS   € Ü  °EÀ&ÔIˆØ×ÑÔØ×)Ñ)ˆ	à$×0Ñ0ˆÔØ&ˆÔÜ˜h×2Ñ2°I¸uÓEˆ�ó    c                 ó–   — | j                  | «      }t        j                  ||«      |_        t	        |j                  ||«      |_        |S ©N)Ú__new__r   Údeserializer   r    r!   )ÚclsÚdataÚmemor   r   Úinsts         r$   r*   zLALR_Parser.deserialize   s@   € à�{‰{˜3ÓˆÜ)×5Ñ5°d¸DÓAˆÔÜ˜d×/Ñ/°¸EÓBˆŒØˆr&   Nr-   Úreturnc                 ó8   — | j                   j                  |«      S r(   )r   Ú	serialize)r"   r-   s     r$   r1   zLALR_Parser.serialize"   s   € Ø× Ñ ×*Ñ*¨4Ó0Ð0r&   ÚlexerÚstartc                 ó>   — | j                   j                  ||d¬«      S )NT)Ústart_interactive)r!   Úparse)r"   r2   r3   s      r$   Úparse_interactivezLALR_Parser.parse_interactive%   s   € Ø�{‰{× Ñ  ¨ÀÐ ÓFÐFr&   c                 ó   — 	 | j                   j                  ||«      S # t        $ �re}|€‚ 	 t        |t        «      r6|j
                  j                  j                  }|j                  j                  } ||«      s|‚t        |t        «      rNj                  j                  k(  r5|j                  j                  |j                  j                  ||dz    «       	 |j
                  j                  «       cY d }~S # t        $ rm}t        |t        «      rQ|j                  j                  |j                  j                  cxk(  rdk(  rn n|j
                  |j
                  k(  r|‚|}Y d }~nd }~wt        $ r}|}Y d }~nd }~ww xY w�Œ\d }~ww xY w)Nr   ú$END)r!   r6   r   Ú
isinstancer   Úinteractive_parserÚlexer_threadÚstateÚline_ctrÚchar_posÚfeedÚtextÚresume_parser   ÚtokenÚtype)r"   r2   r3   Úon_errorÚeÚsÚpÚe2s           r$   r6   zLALR_Parser.parse(   s9  € ð	Ø—;‘;×$Ñ$ U¨EÓ2Ð2øÜó 	ØÐØàÜ˜aÔ!5Ô6Ø×,Ñ,×9Ñ9×?Ñ?�AØŸ
™
×+Ñ+�Aá ”{Ø�Gä˜aÔ!5Ô6à˜AŸJ™J×/Ñ/Ò/ØŸ
™
Ÿ™¨¯©¯©°A°a¸±cÐ(:Ô;ð
Ø×/Ñ/×<Ñ<Ó>Õ>øÜ&ò Ü" 1¤oÔ6ØŸG™GŸL™L¨B¯H©H¯M©MÔC¸VÕCØ×0Ñ0°B×4IÑ4IÒIà ˜Ø•AûÜ+ò Ø•Aûðúñ- ûð		úsR   ‚ ž
F¨B2FÃC:Ã4FÃ:	FÄA#E+Å&FÅ+FÅ7E>Å9FÅ>FÆFÆF)FF©Fr(   )Ú__name__Ú
__module__Ú__qualname__r
   Úboolr%   Úclassmethodr*   r   r   Ústrr1   r   r7   r6   © r&   r$   r   r      sj   „ ñF Jð F°tð FÈ4ó Fð òó ðñ1˜cð 1¨T°#°s°(©^ó 1ðG {ð G¸3ó Gôr&   r   c                   ól   — e Zd ZU eed<   eed<   eed<   ddededefd„Zddede	fd„Z
dd	ed
ee   fd„Zy)r    r   r   r   c                 ó.   — || _         || _        || _        y r(   )r   r   r   )r"   r   r   r   s       r$   r%   z_Parser.__init__N   s   € Ø&ˆÔØ"ˆŒØˆ�
r&   Nr2   r3   c                 ó´   — t        | j                  | j                  |«      }t        ||||«      }|rt	        | ||j
                  «      S | j                  |«      S r(   )r   r   r   r   r   r2   Úparse_from_state)r"   r2   r3   Úvalue_stackÚstate_stackr5   Ú
parse_confÚparser_states           r$   r6   z_Parser.parseS   sS   € Ü˜t×/Ñ/°·±ÀÓGˆ
Ü" :¨u°kÀ;ÓOˆÙÜ$ T¨<¸×9KÑ9KÓLÐLØ×$Ñ$ \Ó2Ð2r&   r=   Ú
last_tokenc                 óH  — 	 |}|j                   j                  |«      D ]  }|€J ‚|j                  |«       Œ |rt        j                  dd|«      nt        ddddd«      }|j                  |d«      S # t
        $ r4}	 t        | ||j                   «      |_        |‚# t        $ r Y |‚w xY wd}~wt        $ rj}| j                  rXt        d«       t        d«       t        d«       t        |j                  «      D ]  \  }}t        d	|z  |«       Œ t        d«       ‚ d}~ww xY w)
zÇRun the main LALR parser loop

        Parameters:
            state - the initial state. Changed in-place.
            last_token - Used only for line information in case of an empty lexer.
        Nr9   Ú r   r   TzSTATE STACK DUMPz----------------z%d))r2   ÚlexÚ
feed_tokenr   Únew_borrow_posr   r   r;   Ú	NameErrorÚ	Exceptionr   ÚprintÚ	enumeraterW   )r"   r=   rZ   rC   Ú	end_tokenrF   ÚirG   s           r$   rU   z_Parser.parse_from_state[   s#  € ð	ØˆEØŸ™Ÿ™¨Ö/�ØÐ(Ð(Ð(Ø× Ñ  Õ'ð 0ñ DIœ×,Ñ,¨V°R¸Ô?ÌeÐTZÐ\^Ð`aÐcdÐfgÓNhˆIØ×#Ñ# I¨tÓ4Ð4øÜò 	ðÜ'8¸¸uÀeÇkÁkÓ'R�Ô$ð ˆGøô ò ØØˆGðþô ò 		Ø�zŠzÜ�b”	ÜÐ(Ô)ÜÐ(Ô)Ü% e×&7Ñ&7Ö8‘D�A�qÜ˜% !™) aÕ(ð 9ä�b”	àûð		úsC   ‚A0A3 Á3	D!Á=BÂB+Â	B(Â$B+Â'B(Â(B+Â+D!Â7A%DÄD!rJ   )NNFr(   )rK   rL   rM   r   Ú__annotations__r   rN   r%   r   rP   r6   r   r   r   rU   rQ   r&   r$   r    r    I   sX   … ØÓØÓØƒKñ Nð ¸ð ÐW[ó ñ
3˜;ð 3¨só 3ñ kð ¸xÈ¹ô r&   r    N)Ú__doc__Útypingr   r   r   r2   r   r   Úutilsr	   Úcommonr
   r   Úlalr_analysisr   r   r   Úlalr_interactive_parserr   Úlark.exceptionsr   r   r   Úlalr_parser_stater   r   r   r    rQ   r&   r$   Ú<module>ro      sD   ðñ÷ 'Ñ &ß &Ý ß 0ç GÑ GÝ 6ß RÑ Rß 5ô5�)ô 5÷p0ò 0r&   