
    {Zi-                     
   % 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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r0\0\(S'    " S S5      r1S\ S\!4S jr2S  r3S\ S\!4S! jr4S\ S\!S\Rj                  4S" jr6 " S# S$5      r7\6\(S%'   \7\(S&'   S'\"S(\#4S) jr8g),    )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 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/var/www/eduai.edurigo.com/question_generate/ques_gen_env/lib/python3.13/site-packages/lark/parser_frontends.py__init__1_wrap_lexer.<locals>.CustomLexerWrapper1.__init__       (4
    c                     [        UR                  [        5      (       a*  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
isinstancetextr   is_complete_text	TypeErrorr*   lexr,   lexer_stateparser_states      r/   r:   ,_wrap_lexer.<locals>.CustomLexerWrapper1.lex   sV    k..	::;CSCSCdCdCfCf#$VWW#.#3#3 zz~~k@@r3   r)   N__name__
__module____qualname____firstlineno__r0   r:   __static_attributes__r.   s   r/   CustomLexerWrapper1r%      s    5Ar3   rF   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/   r0   1_wrap_lexer.<locals>.CustomLexerWrapper0.__init__!   r2   r3   c                 <   [        UR                  [        5      (       aY  UR                  R                  5       (       d  [	        S5      eU R
                  R                  UR                  R                  5      $ U R
                  R                  UR                  5      $ )Nz0Interface=0 Custom Lexer don't support TextSlicer5   r;   s      r/   r:   ,_wrap_lexer.<locals>.CustomLexerWrapper0.lex$   sn    k..	::&++<<>>'(Z[[::>>+*:*:*?*?@@zz~~k&6&677r3   r)   Nr?   rE   s   r/   CustomLexerWrapper0rH       s    58r3   rN   z#Unknown __future_interface__ value z, integer 0-2 expected)getattrr   
ValueError)r.   future_interfacerF   rN   s   `   r/   _wrap_lexerrR      ss    {,BAF1	Q		A% 	A #"	Q			8% 		8 #">?O>PPfghhr3   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)rU   )r   deserialize_pluginsgetr   debug	callbacksParsingFrontend)datamemor-   rZ   optionsrT   clsrU   s           r/   _deserialize_parsing_frontendr`   /   sf    ((m)<dCK:w''++M:
J{C__T(^TgmmLF%:GKKr3   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)r[   :   )r-   rT   rU   r-   rT   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})rT   r-   r^   rU   ra   rX   parser_typeformat
lexer_type
skip_lexerpostlexr6   type
issubclassr   rR   r*   strcreate_basic_lexercreate_contextual_lexerr9   PostLexConnector)r,   r-   rT   r^   rU   create_parserrm   create_lexers           r/   r0   ParsingFrontend.__init__A   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 r3   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 )rT   startlenr   )r,   rz   start_declss      r/   _verify_startParsingFrontend._verify_startg   s    =**00K;!#(  *I  KV  W  W GE  **000$SXZ^ZjZjZpZp%qrrr3   r7   returnc                    U R                   =(       a%    U R                   R                  R                  S5      =(       d    [        nU R                  (       a  U$ Uc  U" U R
                  S 5      $ [        U[        [        [        45      (       a  UR                  U R
                  U5      $ UR                  U R
                  U5      $ )Nr   )r^   rW   rX   r   rn   r*   r6   rr   bytesr   	from_textfrom_custom_input)r,   r7   r_   s      r/   _make_lexer_thread"ParsingFrontend._make_lexer_threadq   s    ||H 5 5 9 9- HX[??K<tzz4((dS%344==T22$$TZZ66r3   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$ )Nre   zLexer z does not support text slices.on_error)
r-   rm   r6   r   r8   r9   r}   r   rU   parse)r,   r7   rz   r   chosen_startkwstreams          r/   r   ParsingFrontend.parse{   s    ??%%)HH$	**43H3H3J3J&)C)C(DDb cdd))%0#R*h)?((.{{  <<<r3   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}   rT   rk   r   r   rU   parse_interactive)r,   r7   rz   r   r   s        r/   r   !ParsingFrontend.parse_interactive   sY     ))%0''61$%cdd((.{{,,VBBr3   )r*   r-   r^   rU   rT   rn   r(   )NN)r@   rA   rB   rC   __serialize_fields__r   __annotations__r   r   r0   r}   r   r   r   r   r   r   r   r   rD    r3   r/   r[   r[   :   s    @L$J9 $J: $JL7x	': 7uYP[]aEa?b 7=(9- =Ch{&; C Cr3   r[   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   rh   )ri   rf   rg   )ri   z9Parser %r does not support lexer %%r, expected one of %%s)r   r6   rp   )rU   r*   expecteds      r/   _validate_frontend_argsr      sL    &34eT""+> 	
 	e'bek'kl #r3   c                 n    0 nU H,  n[        XR                  S 5      nUc  M  XBUR                  '   M.     U$ r(   )rO   name)transformer	terminalsresultterminalcallbacks        r/   _get_lexer_callbacksr      s:    F;t<$,8==!  Mr3   c                        \ rS rSrS rS rSrg)ru      c                     Xl         X l        g r(   r*   	postlexer)r,   r*   r   s      r/   r0   PostLexConnector.__init__   s    
"r3   c                 n    U R                   R                  X5      nU R                  R                  U5      $ r(   )r*   r:   r   process)r,   r<   r=   is       r/   r:   PostLexConnector.lex   s)    JJNN;5~~%%a((r3   r   Nr?   r   r3   r/   ru   ru      s    #)r3   ru   c                 t    U=(       a    UR                   R                  S5      =(       d    [        nU" U 5      $ )Nr   )rW   rX   r   )r-   rU   ro   r^   r_   s        r/   rs   rs      s,    9w''++L9
HjCz?r3   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)	rW   rX   r   _parse_tablestatesitemslistkeysr   )
r-   rU   ro   r^   r_   parse_tableidxtr   r   s
             r/   rt   rt      s    >w''++,=>
R?C'-':':KKVK]K]KcKcKe)fKe#d1668n*<KeF)f>EW%:%:2Mz?? *gs   &B rT   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   )rY   strict)rY   r   rW   rX   r   )r-   rT   r^   rY   r   r_   s         r/   create_lalr_parserr      sI    $GMM%E&W^^EF:w''++M:
J{C{77r3   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   rP   r   	use_bytesencode	re_modulecompileg_regex_flags)r,   r-   r   regexpwidths        r/   r0   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,   termr7   indexs       r/   r   EarleyRegexpMatcher.match   s     ||DII&,,T99r3   )r   N)r   )r@   rA   rB   rC   r0   r   rD   r   r3   r/   r   r      s    b :r3   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.)rZ   r   r   r   Parserr   )r-   rT   r   earley_matchers       r/   create_earley_parser__dynamicr      s=    TUU(4N>>*>3G3GN2NNr3   c                 4    U R                   UR                  :H  $ r(   )r   rp   )r   tokens     r/   _match_earley_basicr      s    99

""r3   c                 :    [         R                  " X[        40 UD6$ r(   )r   r   r   )r-   rT   r   s      r/   create_earley_parser__basicr      s    ==2ELLLr3   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forestrf   rg   Tcomplete_lex)resolve_ambiguityrY   
tree_classordered_sets)	ambiguityrY   r   r   rm   r   r   r   )r-   rT   r^   r   rY   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[] ]r3   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   rulesrU   rZ   )r,   r-   rT   r^   s       r/   r0   CYK_FrontEnd.__init__   s%    jj!2!23$..r3   c                     [        UR                  S 5      5      nU R                  R                  X25      nU R	                  U5      $ r(   )r   r:   rU   r   
_transform)r,   lexer_threadrz   tokenstrees        r/   r   CYK_FrontEnd.parse   s:    l&&t,-{{  /t$$r3   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childrenr6   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(   )rZ   ruler   )r,   r   s     r/   r   CYK_FrontEnd._apply_callback	  s    ~~dii(77r3   )rZ   rU   r(   )	r@   rA   rB   rC   r0   r   r   r   rD   r   r3   r/   r   r      s    /
%
*8r3   r   r   r   rk   rm   c                     [        U[        5      (       d   e[        U[        5      (       d   eXl        Xl        [        X#U5      $ r(   )r6   r   r   rk   rm   r[   )rk   rm   r-   rT   r^   s        r/   _construct_parsing_frontendr     sC     j),,,,k:....)&:G<<r3   )r   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    rR   r`   ra   r   r[   r   r   ru   rs   rt   r   r   r   r   r   r   r   r   r   r   r3   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_ @89 8: 8Xc 8 .  : :*Oi Oj O#MI MJ M]Y ]Z ]U[UbUb ]&8 8, 2  &  =#=!=r3   