
    ^hG,                        % S SK JrJrJrJrJrJrJr  SSKJ	r	J
r
Jr  SSKJrJrJrJr  SSKJrJrJrJr  SSKJrJrJr  SSKJr  SSKJr  SS	KJrJ r J!r!J"r"  \(       a  SS
K#J$r$  S r%S r&0 r'S\(S'    " S S\5      r)S*S jr*S r+ " S S5      r,S\4S jr-S\S\4S jr.S+S\S\ S\4S jjr/\/\'S'    " S S5      r0S\S\ 4S jr1S  r2S\S\ 4S! jr3S\S\ S\Rh                  4S" jr5 " S# S$5      r6\5\'S%'   \6\'S&'   S'\!S(\"4S) jr7g),    )AnyCallableDictOptional
CollectionUnionTYPE_CHECKING   )ConfigurationErrorGrammarErrorassert_config)get_regexp_width	SerializeTextOrSlice	TextSlice)LexerThread
BasicLexerContextualLexerLexer)earleyxearleycyk)LALR_Parser)Tree)	LexerConf
ParserConf_ParserArgType_LexerArgType)ParseTableBasec                    ^  [        T SS5      nUS:X  a  T $ US:X  a   " U 4S jS[        5      nU$ US:X  a   " U 4S jS[        5      nU$ [        S	U S
35      e)N__future_interface__r      r
   c                   (   > \ rS rSrU 4S jrS rSrg)(_wrap_lexer.<locals>.CustomLexerWrapper1   c                     > T" U5      U l         g Nlexerself
lexer_conflexer_classs     O/home/james-whalen/.local/lib/python3.13/site-packages/lark/parser_frontends.py__init__1_wrap_lexer.<locals>.CustomLexerWrapper1.__init__       (4
    c                     UR                   R                  5       (       d  [        S5      eUR                   Ul         U R                  R	                  X5      $ )Nz0Interface=1 Custom Lexer don't support TextSlicetextis_complete_text	TypeErrorr)   lexr+   lexer_stateparser_states      r.   r8   ,_wrap_lexer.<locals>.CustomLexerWrapper1.lex   sD    "''88::#$VWW#.#3#3 zz~~k@@r2   r(   N__name__
__module____qualname____firstlineno__r/   r8   __static_attributes__r-   s   r.   CustomLexerWrapper1r$      s    5Ar2   rD   c                   (   > \ rS rSrU 4S jrS rSrg)(_wrap_lexer.<locals>.CustomLexerWrapper0    c                     > T" U5      U l         g r'   r(   r*   s     r.   r/   1_wrap_lexer.<locals>.CustomLexerWrapper0.__init__!   r1   r2   c                     UR                   R                  5       (       d  [        S5      eU R                  R	                  UR                   R                   5      $ )Nz0Interface=0 Custom Lexer don't support TextSlicer4   r9   s      r.   r8   ,_wrap_lexer.<locals>.CustomLexerWrapper0.lex$   sB    "''88::#$VWWzz~~k&6&6&;&;<<r2   r(   Nr=   rC   s   r.   CustomLexerWrapper0rF       s    5=r2   rL   z#Unknown __future_interface__ value z, integer 0-2 expected)getattrr   
ValueError)r-   future_interfacerD   rL   s   `   r.   _wrap_lexerrP      ss    {,BAF1	Q		A% 	A #"	Q		=% 	= #">?O>PPfghhr2   c                     [         R                  " U S   U5      nU=(       a    UR                  R                  S5      =(       d    [        nUR                  U S   XUR
                  5      nX5l        [        X%XGS9$ )Nparser_confr   parser)rS   )r   deserialize_pluginsgetr   debug	callbacksParsingFrontend)datamemor,   rX   optionsrR   clsrS   s           r.   _deserialize_parsing_frontendr^   -   sf    ((m)<dCK:w''++M:
J{C__T(^TgmmLF%:GKKr2   z/Dict[str, Callable[[LexerConf, Any, Any], Any]]_parser_creatorsc                       \ rS rSr% Sr\\S'   \\S'   \\S'   SS\S\4S jjr	SS jr
S	\\   S
\\\S4   4S jrSS	\\   4S jjrSS	\\   4S jjrSrg)rY   8   )r,   rR   rS   r,   rR   r\   Nc                    X l         Xl        X0l        U(       a  X@l        OP[        R                  UR                  5      nUc    SR                  UR                  5      5       eU" XU5      U l        UR                  nSU l	        US;   a  UR                  b   eSU l	        g [        U[        5      (       a.  [        U[        5      (       d   e[        U5      " U5      U l        OT[        U["        5      (       a4  [$        [&        S.U   nU" XR                  UR                  U5      U l        O[)        S5      eUR                  (       a&  [+        U R                   UR                  5      U l        g g )Nz&{} is not supported in standalone modeFdynamicdynamic_completeTbasic
contextualz&Bad value for lexer_type: {lexer_type})rR   r,   r\   rS   r_   rV   parser_typeformat
lexer_type
skip_lexerpostlex
isinstancetype
issubclassr   rP   r)   strcreate_basic_lexercreate_contextual_lexerr7   PostLexConnector)r+   r,   rR   r\   rS   create_parserrk   create_lexers           r.   r/   ParsingFrontend.__init__?   sI   &$  K,001H1HIM , .V.].]++/ , (
IDK  **
88%%---"DOj$''j%0000$Z0<DJ
C((+5 L &j++z?Q?QSZ[DJDEE)$**j6H6HIDJ r2   c                     Uc7  U R                   R                  n[        U5      S:  a  [        SU5      eUu  nU$ XR                   R                  ;  a'  [        SU< SU R                   R                  < 35      eU$ )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 )rR   startlenr   )r+   ry   start_declss      r.   _verify_startParsingFrontend._verify_starte   s    =**00K;!#(  *I  KV  W  W GE  **000$SXZ^ZjZjZpZp%qrrr2   r5   returnc                    U R                   =(       a%    U R                   R                  R                  S5      =(       d    [        nU R                  (       a  U$ Uc  U" U R
                  S 5      $ UR                  U R
                  U5      $ )Nr   )r\   rU   rV   r   rl   r)   	from_text)r+   r5   r]   s      r.   _make_lexer_thread"ParsingFrontend._make_lexer_threado   se    ||H 5 5 9 9- HX[tvT\C

D,AvWZWdWdeieoeoquWvvr2   c                 `   U R                   R                  S;   aM  [        U[        5      (       a8  UR	                  5       (       d#  [        SU R                   R                   S35      eU R                  U5      nUc  0 OSU0nU R                  U5      nU R                  R                  " Xd40 UD6$ )Nrc   zLexer z does not support text slices.on_error)
r,   rk   rn   r   r6   r7   r|   r   rS   parse)r+   r5   ry   r   chosen_startkwstreams          r.   r   ParsingFrontend.parses   s    ??%%)HH$	**43H3H3J3J&)C)C(DDb cdd))%0#R*h)?((.{{  <<<r2   c                     U R                  U5      nU R                  R                  S:w  a  [        S5      eU R	                  U5      nU R
                  R                  XC5      $ )Nlalrz<parse_interactive() currently only works with parser='lalr' )r|   rR   ri   r   r   rS   parse_interactive)r+   r5   ry   r   r   s        r.   r   !ParsingFrontend.parse_interactive}   sY     ))%0''61$%cdd((.{{,,VBBr2   )r)   r,   r\   rS   rR   rl   r'   )NN)r>   r?   r@   rA   __serialize_fields__r   __annotations__r   r   r/   r|   r   r   r   r   r   r   r   rB    r2   r.   rY   rY   8   s    @L$J9 $J: $JLwx'< w{T_aeGeAf w=(;/ =Ch{&; C Cr2   rY   r~   Nc                 x    [        U S5        [        U[        5      (       d  SSSS.U    n[        XSU -  5        g g )N)r   r   r   rf   )rg   rd   re   )rg   z9Parser %r does not support lexer %%r, expected one of %%s)r   rn   ro   )rS   r)   expecteds      r.   _validate_frontend_argsr      sL    &34eT""+> 	
 	e'bek'kl #r2   c                 n    0 nU H,  n[        XR                  S 5      nUc  M  XBUR                  '   M.     U$ r'   )rM   name)transformer	terminalsresultterminalcallbacks        r.   _get_lexer_callbacksr      s:    F;t<$,8==!  Mr2   c                        \ rS rSrS rS rSrg)rt      c                     Xl         X l        g r'   r)   	postlexer)r+   r)   r   s      r.   r/   PostLexConnector.__init__   s    
"r2   c                 n    U R                   R                  X5      nU R                  R                  U5      $ r'   )r)   r8   r   process)r+   r:   r;   is       r.   r8   PostLexConnector.lex   s)    JJNN;5~~%%a((r2   r   Nr=   r   r2   r.   rt   rt      s    #)r2   rt   c                 t    U=(       a    UR                   R                  S5      =(       d    [        nU" U 5      $ )Nr   )rU   rV   r   )r,   rS   rm   r\   r]   s        r.   rr   rr      s,    9w''++L9
HjCz?r2   r,   c           	      L   U=(       a    UR                   R                  S5      =(       d    [        nUR                  nUR                  R                  5        VVs0 s H  u  pgU[        UR                  5       5      _M!     nnnU(       a  UR                  OSn	U" XU	S9$ s  snnf )Nr   r   )always_accept)	rU   rV   r   _parse_tablestatesitemslistkeysr   )
r,   rS   rm   r\   r]   parse_tableidxtr   r   s
             r.   rs   rs      s    >w''++,=>
R?C'-':':KKVK]K]KcKcKe)fKe#d1668n*<KeF)f>EW%:%:2Mz?? *gs   &B rR   c                     U(       a  UR                   OSnU(       a  UR                  OSnU=(       a    UR                  R                  S5      =(       d    [        nU" XUS9$ )NFr   )rW   strict)rW   r   rU   rV   r   )r,   rR   r\   rW   r   r]   s         r.   create_lalr_parserr      sI    $GMM%E&W^^EF:w''++M:
J{C{77r2   r   c                   $    \ rS rSrS rSS jrSrg)EarleyRegexpMatcher   c                    0 U l         UR                   H  nUR                  R                  5       n [	        U5      S   nUS:X  a  [        SU5      e UR                  (       a  UR                  S5      nUR                  R                  X1R                  5      U R                   UR                  '   M     g ! [         a    [        SUR                  < SU< 35      ef = f)Nr   z/Dynamic Earley doesn't allow zero-width regexpszBad regexp in token z: zutf-8)regexpsr   pattern	to_regexpr   r   rN   r   	use_bytesencode	re_modulecompileg_regex_flags)r+   r,   r   regexpwidths        r.   r/   EarleyRegexpMatcher.__init__   s    %%AYY((*F](03 A:&'XZ[\\ ##w/#-#7#7#?#?H`H`#aDLL  &  T"1666#RSSTs   B66(Cc                 R    U R                   UR                     R                  X#5      $ r'   )r   r   match)r+   termr5   indexs       r.   r   EarleyRegexpMatcher.match   s     ||DII&,,T99r2   )r   N)r   )r>   r?   r@   rA   r/   r   rB   r   r2   r.   r   r      s    b :r2   r   c                     U R                   (       a  [        S5      e[        U 5      n[        R                  " XUR
                  40 UD6$ )Nz7Earley's dynamic lexer doesn't support lexer_callbacks.)rX   r   r   r   Parserr   )r,   rR   r   earley_matchers       r.   create_earley_parser__dynamicr      s=    TUU(4N>>*>3G3GN2NNr2   c                 4    U R                   UR                  :H  $ r'   )r   ro   )r   tokens     r.   _match_earley_basicr      s    99

""r2   c                 :    [         R                  " X[        40 UD6$ r'   )r   r   r   )r,   rR   r   s      r.   create_earley_parser__basicr      s    ==2ELLLr2   c                 D   UR                   S:H  nU(       a  UR                  OSnUR                   S:w  a  UR                  =(       d    [        OS n0 nU R                  S:X  a  [
        nO"U R                  S:X  a  SUS'   [
        nO[        nU" X4UXEUR                  S.UD6$ )	NresolveFforestrd   re   Tcomplete_lex)resolve_ambiguityrW   
tree_classordered_sets)	ambiguityrW   r   r   rk   r   r   r   )r,   rR   r\   r   rW   r   extrafs           r.   create_earley_parserr      s    ))Y6$GMM%E/6/@/@H/L##+tRVJE	))			"4	4 $n)'Z ]8Ig>R>R]V[] ]r2   c                   0    \ rS rSrSS jrS rS rS rSrg)	CYK_FrontEnd   Nc                 p    [         R                  " UR                  5      U l        UR                  U l        g r'   )r   r   rulesrS   rX   )r+   r,   rR   r\   s       r.   r/   CYK_FrontEnd.__init__   s%    jj!2!23$..r2   c                     [        UR                  S 5      5      nU R                  R                  X25      nU R	                  U5      $ r'   )r   r8   rS   r   
_transform)r+   lexer_threadry   tokenstrees        r.   r   CYK_FrontEnd.parse   s:    l&&t,-{{  /t$$r2   c                    [        UR                  5       5      nU HK  nUR                   Vs/ s H+  n[        U[        5      (       a  U R                  U5      OUPM-     snUl        MM     U R                  U5      $ s  snf r'   )r   iter_subtreeschildrenrn   r   _apply_callback)r+   r   subtreessubtreecs        r.   r   CYK_FrontEnd._transform   su    **,-G_f_o_op_oZ[:a;N;N 4 4Q 7TU U_opG   ##D))  qs   2A<c                 T    U R                   UR                     " UR                  5      $ r'   )rX   ruler   )r+   r   s     r.   r   CYK_FrontEnd._apply_callback  s    ~~dii(77r2   )rX   rS   r'   )	r>   r?   r@   rA   r/   r   r   r   rB   r   r2   r.   r   r      s    /
%
*8r2   r   r   r   ri   rk   c                     [        U[        5      (       d   e[        U[        5      (       d   eXl        Xl        [        X#U5      $ r'   )rn   r   r   ri   rk   rY   )ri   rk   r,   rR   r\   s        r.   _construct_parsing_frontendr   	  sC     j),,,,k:....)&:G<<r2   )r~   Nr'   )8typingr   r   r   r   r   r   r	   
exceptionsr   r   r   utilsr   r   r   r   r)   r   r   r   r   parsersr   r   r   parsers.lalr_parserr   r   r   commonr   r   r   r   parsers.lalr_analysisr   rP   r^   r_   r   rY   r   r   rt   rr   rs   r   r   r   r   r   r   r   r   r   r   r2   r.   <module>r      s\   R R R G G F F B B ) ) ,  H H5
i8L GI C HLCi LC^m) )
 @	 @P_ @89 8: 8Xc 8 .  : :*Oi Oj O#MI MJ M]Y ]Z ]U[UbUb ]&8 8, 2  &  =#=!=r2   