ó
    ÖÁ“iï  ã                   ó¶   • S r SSKJrJrJr  SSKJrJr  SSKJ	r	  SSK
JrJr  SSKJrJrJr  SS	KJr  SS
KJrJrJr  SSKJrJr   " S S\	5      r " S S5      rg)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                   ó~   • \ rS rSrSS\S\S\4S jjr\SS j5       rSS\	S	\
\\	4   4S
 jjrS\S\4S jrSS jrSrg)ÚLALR_Parseré   Úparser_confÚdebugÚstrictc                 ó´   • [        XUS9nUR                  5         UR                  nUR                  U l        Xl        [        UR                  XR5      U l        g )N)r   r   )r   Úcompute_lalrÚ	callbacksÚparse_tableÚ_parse_tabler   Ú_ParserÚparser)Úselfr   r   r   Úanalysisr   s         ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/lark/parsers/lalr_parser.pyÚ__init__ÚLALR_Parser.__init__   sM   € Ü  À&ÑIˆØ×ÑÔØ×)Ñ)ˆ	à$×0Ñ0ˆÔØ&ÔÜ˜h×2Ñ2°IÓEˆ�ó    c                 ó”   • U R                  U 5      n[        R                  " X5      Ul        [	        UR                  X45      Ul        U$ ©N)Ú__new__r   Údeserializer    r!   r"   )ÚclsÚdataÚmemor   r   Úinsts         r%   r,   ÚLALR_Parser.deserialize   s<   € à�{‰{˜3ÓˆÜ)×5Ò5°dÓAˆÔÜ˜d×/Ñ/°ÓBˆŒØˆr(   Nr/   Úreturnc                 ó8   • U R                   R                  U5      $ r*   )r    Ú	serialize)r#   r/   s     r%   r4   ÚLALR_Parser.serialize"   s   € Ø× Ñ ×*Ñ*¨4Ó0Ð0r(   ÚlexerÚstartc                 ó6   • U R                   R                  XSS9$ )NT)Ústart_interactive)r"   Úparse)r#   r6   r7   s      r%   Úparse_interactiveÚLALR_Parser.parse_interactive%   s   € Ø�{‰{× Ñ  ÀÐ ÐFÐFr(   c                 óV  •  U R                   R                  X5      $ ! [         Ga€  nUc  e  [        U[        5      (       a6  UR
                  R                  R                  nUR                  R                  nU" U5      (       d  Ue[        U[        5      (       aN  WWR                  R                  :X  a4  UR                  R                  UR                  R                  XfS-    5         UR
                  R                  5       s S nA$ ! [         au  n[        U[        5      (       aT  UR                  R                  UR                  R                  s=:X  a  S:X  a  O  OUR
                  UR
                  :X  a  UeUn S nAOS nAf[         a  nUn S nAOS nAff = fGMv  S nAff = f)Nr   ú$END)r"   r:   r   Ú
isinstancer   Úinteractive_parserÚlexer_threadÚstateÚline_ctrÚchar_posÚfeedÚtextÚresume_parser   ÚtokenÚtype)r#   r6   r7   Úon_errorÚeÚsÚpÚe2s           r%   r:   ÚLALR_Parser.parse(   s@  € ð	Ø—;‘;×$Ñ$ UÓ2Ð2øÜô 	ØÑØàÜ˜aÔ!5×6Ñ6Ø×,Ñ,×9Ñ9×?Ñ?�AØŸ
™
×+Ñ+�Aá —{‘{Ø�Gä˜aÔ!5×6Ñ6à˜AŸJ™J×/Ñ/Ó/ØŸ
™
Ÿ™¨¯©¯©°A¸±cÐ(:Ô;ð
Ø×/Ñ/×<Ñ<Ó>Õ>øÜ&ó Ü" 1¤o×6Ñ6ØŸG™GŸL™L¨B¯H©H¯M©MÕC¸VÖCØ×0Ñ0°B×4IÑ4IÓIà ˜Ø•AûÜ+ó Ø•Aûðúò- ûð		úsR   ‚ �F(¨CF#Ã+D
ÄF(Ä

FÄA+FÅ?F#ÆFÆFÆF#ÆFÆF#Æ#F()r    r"   r   )FF©Fr*   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r
   Úboolr&   Úclassmethodr,   r   r   Ústrr4   r   r;   r:   Ú__static_attributes__© 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                   ó€   • \ rS rSr% \\S'   \\S'   \\S'   SS\S\S\4S jjrSS\	S\
4S	 jjrSS
\S\\   4S jjrSrg)r!   éI   r   r   r   c                 ó(   • Xl         X l        X0l        g r*   )r   r   r   )r#   r   r   r   s       r%   r&   Ú_Parser.__init__N   s   € Ø&ÔØ"ŒØ�
r(   Nr6   r7   c                 ó¸   • [        U R                  U R                  U5      n[        XaXC5      nU(       a  [	        XUR
                  5      $ U R                  U5      $ r*   )r   r   r   r   r   r6   Úparse_from_state)r#   r6   r7   Úvalue_stackÚstate_stackr9   Ú
parse_confÚparser_states           r%   r:   Ú_Parser.parseS   sM   € Ü˜t×/Ñ/°·±ÀÓGˆ
Ü" :°kÓOˆÞÜ$ T¸×9KÑ9KÓLÐLØ×$Ñ$ \Ó2Ð2r(   rB   Ú
last_tokenc                 ój  •  UnUR                   R                  U5       H  nUc   eUR                  U5        M     U(       a  [        R                  " SSU5      O[        SSSSS5      nUR                  US5      $ ! [
         a4  n [        XUR                   5      Ul        Ue! [         a     Uef = fSnAf[         ap  nU R                  (       aY  [        S5        [        S5        [        S5        [        UR                  5       H  u  pg[        S	U-  U5        M     [        S5        e SnAff = f)
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.
Nr>   Ú r   r   TzSTATE STACK DUMPz----------------z%d))r6   ÚlexÚ
feed_tokenr   Únew_borrow_posr   r   r@   Ú	NameErrorÚ	Exceptionr   ÚprintÚ	enumeratera   )r#   rB   re   rH   Ú	end_tokenrK   ÚirL   s           r%   r_   Ú_Parser.parse_from_state[   s  € ð	ØˆEØŸ™Ÿ™¨Ö/�ØÑ(Ð(Ð(Ø× Ñ  Ö'ñ 0ö DIœ×,Ò,¨V°R¸Ô?ÌeÐTZÐ\^Ð`aÐcdÐfgÓNhˆIØ×#Ñ# I¨tÓ4Ð4øÜó 	ðÜ'8¸ÀeÇkÁkÓ'R�Ô$ð ˆGøô ó ØØˆGðþô ó 		Ø�z�zÜ�b”	ÜÐ(Ô)ÜÐ(Ô)Ü% e×&7Ñ&7Ö8‘D�AÜ˜% !™) aÖ(ñ 9ä�b”	àûð		úsC   ‚A9A< Á<
D2ÂB$Â"B5Â$
B2Â.B5Â1B2Â2B5Â5D2ÃA+D-Ä-D2)r   r   r   rP   )NNFr*   )rQ   rR   rS   rT   r   Ú__annotations__r   rU   r&   r   rW   r:   r   r   r   r_   rX   rY   r(   r%   r!   r!   I   s]   ‡ ØÓØÓØƒKñ Nð ¸ð ÐW[õ ñ
3˜;ð 3¨sõ 3ñ kð ¸xÈ¹÷ ð r(   r!   N)Ú__doc__Útypingr   r   r   r6   r   r   Úutilsr	   Úcommonr
   r   Úlalr_analysisr   r   r   Úlalr_interactive_parserr   Úlark.exceptionsr   r   r   Úlalr_parser_stater   r   r   r!   rY   r(   r%   Ú<module>r{      sD   ðñ÷ 'Ñ &ß &Ý ß 0ç GÑ GÝ 6ß RÑ Rß 5ô5�)ô 5÷p0ò 0r(   