
    #h^h                    b   S SK Jr  S SKrS SKrS SKrS SKJrJr  S SK	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JrJrJrJrJrJrJrJr  SS
KJ r J!r!J"r"J#r#J$r$J%r%J&r&  SSKJ'r'  SSK(J)r)J*r*J+r+J,r,J-r-J.r.J/r/  SSK0J1r1J2r2J3r3J4r4J5r5  / SQr6S r7S r8S r9S r: " S S\;5      r< " S S5      r=g)    )annotationsN)contextmanagersuppress)copy   )	bufferingcolor
tokenizing)AST)
OrderedSet)	FailedCutFailedExpectingEndOfTextFailedKeywordSemanticsFailedLeftRecursionFailedLookaheadFailedParseFailedPattern	FailedRefFailedSemanticsFailedTokenOptionSucceeded
ParseError)AlertMemoKey	ParseInfoParserConfig
ParseStateRuleInfo
RuleResult)	Tokenizer)infois_list
left_assoc
prune_dictright_assoc	safe_nametrim)C_CUTC_ENTRY	C_FAILUREC_RECURSION	C_SUCCESS)ParseContext	tatsumasuleftrecnomemoc                    ^ ^ UU 4S jnU$ )Nc                L   >^  [         R                  " T 5      U UU4S j5       nU$ )Nc           	        > TR                   nUSS n[        TSS5      n[        TSS5      n[        TSS5      n[        UTUUUTT5      nU R                  U5      $ )Nr   
is_leftrecFis_memoizableTis_name)__name__getattrr   _call)	selfnamer5   r6   r7   ruleinfoimplkwparamsparamss	         N/Users/user/Downloads/htwk/venv/lib/python3.13/site-packages/tatsu/contexts.pywrapper-tatsumasu.<locals>.decorator.<locals>.wrapper;   ss    ==D ":D |U;J#D/4@MdIu5GH ::h''    )	functoolswraps)r>   rB   r?   r@   s   ` rA   	decoratortatsumasu.<locals>.decorator:   s%    			( 
	(& rD    )r@   r?   rG   s   `` rA   r.   r.   9   s    . rD   c                "    SU l         SU l        U $ )NTF)r5   r6   r>   s    rA   r/   r/   U   s    DODKrD   c                    SU l         U $ NF)r6   rK   s    rA   r0   r0   ]   s    DKrD   c                    SU l         U $ )NT)r7   rK   s    rA   isnamerO   c   s    DLKrD   c                      \ rS rSrS rSrg)closureh   c                *    [        [        U 5      5      $ N)hashtupler;   s    rA   __hash__closure.__hash__i   s    E$K  rD   rI   N)r8   
__module____qualname____firstlineno__rX   __static_attributes__rI   rD   rA   rQ   rQ   h   s    !rD   rQ   c                    ^  \ rS rSrSuSvU 4S jjjrS r\S 5       r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       r\S
 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       rSwS jrS rSuSvS jjr\S 5       r\SxS j5       r\S 5       r\R>                  S 5       r\S 5       r S r!S r"S  r#SuS! jr$SuS" jr%\S# 5       r&\S$ 5       r'\'R>                  S% 5       r'S& r(S' r)\*S( 5       r+SyS) jr,S* r-SyS+ jr.S, r/S- r0\S. 5       r1\1R>                  S/ 5       r1S0 r2S1 r3SzS2 jr4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rASuS@ jrBSA rCSB rDS{SC jrE\F4SD jrG\F4SE jrHSF rISG rJ\SH 5       rK\SI 5       rLSJ rMSK rNSL rOSM rPSN rQSO rRSP rSSQ rTSR rUSS rVST rWSU rXSV rYSW rZSX r[SY r\SZ r]S[ r^S\ r_S] r`\aS^ 5       rb\aS_ 5       rc\aS` 5       rd\aSa 5       re\aSb 5       rf\aSc 5       rg\aSd 5       rhSySe jriS{Sf jrjS{Sg jrkS{Sh jrlSi rmSj rnSk roSl rpSm rqSn rrSo rsSp rtSq ruSr rvSs rwStrxU =ry$ )|r-   m   c                  > [         TU ]  5         [        R                  " U40 UD6nXl        U R                  U l        S U l        UR                  U l        U R                  5         g rT   )
super__init__r   newconfig_active_config
_tokenizer	semantics
_semantics_initialize_caches)r;   rd   settings	__class__s      rA   rb   ParseContext.__init__n   sT    !!&5H5"kk,0 **!rD   c                    [        5       /U l        / U l        S/U l        S U l        S U l        SU l        S U l        U R                  5         g )NFr   )	r   _statestack_rule_stack
_cut_stack
_last_nodesubstate
_lookahead_furthest_exception_clear_memoization_cachesrW   s    rA   ri   ParseContext._initialize_cachesz   sH    &L> '#' &&(rD   c                    U R                   $ rT   )re   rW   s    rA   active_configParseContext.active_config   s    """rD   c                    U R                   $ rT   )rh   rW   s    rA   rg   ParseContext.semantics       rD   c                .    U R                   R                  $ rT   )rx   encodingrW   s    rA   r~   ParseContext.encoding       !!***rD   c                .    U R                   R                  $ rT   )rx   	parseinforW   s    rA   r   ParseContext.parseinfo       !!+++rD   c                .    U R                   R                  $ rT   )rx   tracerW   s    rA   r   ParseContext.trace   s    !!'''rD   c                .    U R                   R                  $ rT   )rx   trace_lengthrW   s    rA   r   ParseContext.trace_length   s    !!...rD   c                .    U R                   R                  $ rT   )rx   trace_separatorrW   s    rA   r   ParseContext.trace_separator       !!111rD   c                .    U R                   R                  $ rT   )rx   trace_filenamerW   s    rA   r   ParseContext.trace_filename       !!000rD   c                .    U R                   R                  $ rT   )rx   comments_rerW   s    rA   r   ParseContext.comments_re   s    !!---rD   c                .    U R                   R                  $ rT   )rx   eol_comments_rerW   s    rA   r   ParseContext.eol_comments_re   r   rD   c                .    U R                   R                  $ rT   )rx   
whitespacerW   s    rA   r   ParseContext.whitespace       !!,,,rD   c                .    U R                   R                  $ rT   )rx   
ignorecaserW   s    rA   r   ParseContext.ignorecase   r   rD   c                .    U R                   R                  $ rT   )rx   	nameguardrW   s    rA   r   ParseContext.nameguard   r   rD   c                .    U R                   R                  $ rT   )rx   memoize_lookaheadsrW   s    rA   r   ParseContext.memoize_lookaheads   s    !!444rD   c                .    U R                   R                  $ rT   )rx   left_recursionrW   s    rA   r   ParseContext.left_recursion   r   rD   c                .    U R                   R                  $ rT   )rx   colorizerW   s    rA   r   ParseContext.colorize   r   rD   c                    U R                   $ rT   )	_keywordsrW   s    rA   keywordsParseContext.keywords   s    ~~rD   c                .    U R                   R                  $ rT   )rx   	namecharsrW   s    rA   r   ParseContext.namechars   r   rD   c                H   U R                   R                  (       a  [        R                  " 5         U R	                  5         [        UR                  5      U l        UR                  U l	        [        U R                  S5      (       a  U R                  R                  U 5        U$ )Nset_context)rx   r   r	   initri   osetr   r   rg   rh   hasattrr   )r;   rd   s     rA   _resetParseContext._reset   sk    &&JJL!foo. **4>>=11NN&&t,rD   c                |    U R                   (       a$  UR                  U R                   R                  :  a  Xl         g g rT   )rt   posr;   es     rA   _set_furthest_exception$ParseContext._set_furthest_exception   s.    ((uut//333'($ 4rD   c                  U R                   R                  U5      nUR                  " S0 UD6nX l        U R	                  U5        [        U[        R                  5      (       a  UnO!Ub  U R                  nU" XS9nO[        S5      eX@l
        U R                  R                  5       =(       d    Sn U R                  U5      nU" 5       U R                  5         $ ! [         a-  nU R!                  UR"                  5        U R$                  UeS nAf[&         a#  nU R!                  U5        U R$                  UeS nAff = f! U R                  5         f = f)N)rd   zNo tokenizer or textstartrI   )rd   replace_configreplacere   r   
isinstancer
   r    tokenizerclsr   rf   rx   effective_rule_name
_find_ruleru   r   r   nestedrt   r   )	r;   textrd   rj   	tokenizerclsr   ruler   s	            rA   parseParseContext.parse   s"   ++F3+(+$FdJ0011I##CD0I344#""668CG
	-??5)D6 **,  	2((2**1 	2((+**1	2 **,s0   2C 
D<$(DD<D77D<<D? ?Ec                    U R                   $ rT   )rf   rW   s    rA   r   ParseContext.tokenizer   r|   rD   c                |    U R                   R                  c  [        R                  $ U R                   R                  $ rT   )rd   r   r   BufferrW   s    rA   r   ParseContext.tokenizercls   s.    ;;##+###;;+++rD   c                    U R                   $ rT   rq   rW   s    rA   	last_nodeParseContext.last_node  r|   rD   c                    Xl         g rT   r   r;   values     rA   r   r   
  s    rD   c                .    U R                   R                  $ rT   )rf   r   rW   s    rA   _posParseContext._pos  s    """rD   c                .    0 U l         0 U l        SU l        g Nr   )_memos_results_recursion_depthrW   s    rA   ru   &ParseContext._clear_memoization_caches  s     !rD   c                :    U R                   R                  U5        g rT   )rf   goto)r;   r   s     rA   _gotoParseContext._goto  s    S!rD   c                6    U R                   R                  5       $ rT   )rf   nextrW   s    rA   _nextParseContext._next  s    ##%%rD   c                    Ub1  UR                   R                  S5      S S R                  5       (       d  U R                  R	                  5         g g )N_r   )r<   lstripisupperrf   
next_tokenr;   r=   s     rA   _next_tokenParseContext._next_token  sB    8==#7#7#<Ra#@#H#H#J#JOO&&( $KrD   c                x    [        5       nUR                  XS9  UR                  U R                  5        X0l        g )N)	list_keys)r   _defineupdateast)r;   keysr   r   s       rA   r   ParseContext._define!  s,    eD.

488rD   c                     U R                   S   $ Nr4   )rn   rW   s    rA   stateParseContext.state(      ##rD   c                .    U R                   R                  $ rT   r   r   rW   s    rA   r   ParseContext.ast,      zz~~rD   c                $    XR                   l        g rT   r  r   s     rA   r   r  0      

rD   c                6    U R                   U R                  U'   g rT   )r   r   r;   r<   s     rA   name_last_nodeParseContext.name_last_node4  s    rD   c                N    U R                   R                  XR                  5        g rT   )r   _setlistr   r  s     rA   add_last_node_to_name"ParseContext.add_last_node_to_name7  s    $/rD   c                (    X;   a  U S-  n X;   a  M  U $ )Nr   rI   )r<   r   s     rA   
_safe_nameParseContext._safe_name:  s    kCKD krD   c                    U R                   nU R                  X5      nUR                  U5      nUc  U(       a  U/OUnO[        U5      (       a  / UQUPnOXR/n[	        XFS9nX@l         g )Nr<   )r   r  getr"   r   )r;   r<   r   as_listr   previous	new_values          rA   ast_setParseContext.ast_set@  sh    hht)774=#*IX*(*E*I!)I#&rD   c                $    U R                  XSS9  g )NT)r  )r  )r;   r<   r   s      rA   
ast_appendParseContext.ast_appendO  s    T$/rD   c                    U(       a  [        U R                  5      O	[        5       nU R                  U R                  l        U R                  R                  [        X R                  S95        g )N)r   r   )	r   r   r   r   r   r   rn   appendr   )r;   copyastr   s      rA   	_push_astParseContext._push_astR  sA     'd488nSU


s		 BCrD   c                    U R                   R                  5         U R                  R                  U R                  R
                  5        g rT   )rn   popr   r   r   r   rW   s    rA   _pop_astParseContext._pop_astW  s.    DJJNN+rD   c                    U R                   nU R                  nU R                  nU R                  R	                  5         X l        U R                  U5        U R                  R                  U5        g rT   )r   r   cstrn   r"  _extend_cstr   r   )r;   r   r   r&  s       rA   
_merge_astParseContext._merge_ast[  sT    iihhhhC rD   c                .    U R                   R                  $ rT   r   r&  rW   s    rA   r&  ParseContext.cstd  r  rD   c                $    XR                   l        g rT   r+  r   s     rA   r&  r,  h  r  rD   c                \    U R                   R                  [        U R                  S95        g )N)r   )rn   r  r   r   rW   s    rA   	_push_cstParseContext._push_cstl  s    
txx 89rD   c                \    U R                   nU R                  R                  5         Xl         g rT   )r   rn   r"  )r;   r   s     rA   _pop_cstParseContext._pop_csto  s"    hhrD   c                    U R                   nU R                  5         U(       a  U R                  U5        U$ U R                  U5        U$ rT   )r&  r2  r'  _append_cst)r;   extendr&  s      rA   
_merge_cstParseContext._merge_cstt  sA    hhS! 
 S!
rD   c                    Xl         U R                  nUc  U R                  U5      U l        U$ [        U5      (       a  UR	                  U5        U$ X!/U l        U$ rT   )r   r&  
_copy_noder"   r  r;   noder  s      rA   r5  ParseContext._append_cst}  s^    88t,DH
 	 XOOD!  !'DHrD   c                >   Xl         Uc  g U R                  nUc  U R                  U5      U l        U$ [        U5      (       a0  [        U5      (       a  UR	                  U5        U$ U/UQU l         U$ [        U5      (       a  UR                  U5        U$ X!/U l        U$ rT   )r   r&  r:  r"   r6  r  r;  s      rA   r'  ParseContext._extend_cst  s    <88t,DH  T]]x  %  %,t,
 	 XOOD!  !'DHrD   c                8    Uc  g [        U5      (       a  US S  $ U$ rT   )r"   r;   r<  s     rA   r:  ParseContext._copy_node  s!    <T]]7NKrD   c                     U R                   S   $ r   )rp   rW   s    rA   _is_cut_setParseContext._is_cut_set  s    r""rD   c                    U R                  5         SU R                  S'   S nU" U R                  U R                  5        g )NTr4   c                &   ^ [        U U4S j5        g )Nc                   > U S   T:  $ r   rI   )kr   cutposs     rA   <lambda>2ParseContext._cut.<locals>.prune.<locals>.<lambda>  s    1Q4&=rD   )r$   )cacherJ  s    `rA   prune ParseContext._cut.<locals>.prune  s    u89rD   )
_trace_cutrp   r   r   )r;   rN  s     rA   _cutParseContext._cut  s3    "	: 	dkk499%rD   c                F    U R                   =(       d    U R                  S:H  $ r   )r   rs   rW   s    rA   _memoizationParseContext._memoization  s    &&>$//Q*>>rD   c                v   [        U R                  5       Vs/ s H  oR                  PM     nnU R                  R	                  U5      n[        S UR                  5        5       5      U R                  :  a<  US U R                   nUR                  U R                  S5      S   nX0R                  -  nU$ s  snf )Nc              3  8   #    U  H  n[        U5      v   M     g 7frT   )len).0ss     rA   	<genexpr>*ParseContext._rulestack.<locals>.<genexpr>  s     21!s1vv1   r   r   )	reversedro   r<   r   joinmax
splitlinesr   rsplit)r;   r	rulestackstacks       rA   
_rulestackParseContext._rulestack  s    %-d.>.>%?@%?VV%?	@$$)))42u//122T5F5FF-D--.ELL!5!5q9!<E)))E As   B6c                0    U R                  U[        S9  S $ )Nexclassc                     g rT   rI   rI   rD   rA   rK  )ParseContext._find_rule.<locals>.<lambda>  s    trD   )_errorr   r  s     rA   r   ParseContext._find_rule  s    D),rD   c                (   U R                   c  g[        U R                   SS 5      n[        U R                   [        U5      S 5      n[        U5      (       d  [        U R                   SS 5      n[        U5      (       d  S n[        U5      (       d  S nX24$ )N)NN	_postproc_default)rg   r9   r&   callable)r;   r<   postprocactions       rA   _find_semantic_action"ParseContext._find_semantic_action  s}    >>!4>>;=4$?T^^Z>FF!!HrD   c                r    U R                   (       a&  X-  n[        [        U5      [        R                  S9  g g )N)file)r   r!   strsysstderr)r;   msgr@   kwargss       rA   _traceParseContext._trace  s'    ::MCS

+ rD   c           	        U R                   (       a  SnU R                  (       a'  U R                  R                  5       R                  S-   nU R                  R                  5       R                  5       nU(       a  SU-   nU R                  SXR                  5       -   U R                  R                  5       [        R                  R                  U-   [        R                  R                  U-   [        R                  R                  -   SS9  g g )N 
z	%s %s%s%send)r   r   rf   	line_infofilename	lookaheadrstripr~  rf  lookahead_posr	   StyleDIMNORMAL	RESET_ALL)r;   eventfnamer  s       rA   _trace_eventParseContext._trace_event  s    ::E""113<<tC113::<I 9,	KK))--/%'""Y.1F1FF   rD   c                    U R                  [        R                  R                  [        R                  R
                  -   [        -   5        g rT   )r  r	   ForeYELLOWr  BRIGHTr)   rW   s    rA   _trace_entryParseContext._trace_entry  s.    %**++ekk.@.@@7JKrD   c                    U R                  [        R                  R                  [        R                  R
                  -   [        -   5        g rT   )r  r	   r  GREENr  r  r,   rW   s    rA   _trace_successParseContext._trace_success  s.    %****U[[-?-??)KLrD   c                    [        U[        5      (       a  U R                  5         g U R                  [        R
                  R                  [        R                  R                  -   [        -   5        g rT   )
r   r   _trace_recursionr  r	   r  REDr  r  r*   )r;   exs     rA   _trace_failureParseContext._trace_failure  sF    b-..!!#ejjnnu{{/A/AAIMNrD   c                    U R                  [        R                  R                  [        R                  R
                  -   [        -   5        g rT   )r  r	   r  r  r  r  r+   rW   s    rA   r  ParseContext._trace_recursion  s,    %**..5;;+=+==KLrD   c                    U R                  [        R                  R                  [        R                  R
                  -   [        -   5        g rT   )r  r	   r  MAGENTAr  r  r(   rW   s    rA   rP  ParseContext._trace_cut   s.    %**,,u{{/A/AAEIJrD   c           	        U R                   (       GaK  SnU R                  (       a'  U R                  R                  5       R                  S-   nU(       a  SU S3OSnU(       d"  [
        R                  R                  [        -   nO![
        R                  R                  [        -   nU R                  R                  5       R                  5       nU(       a  SU-   nU R                  [
        R                  R                  U-   S-   UU[
        R                  R                   U-   [
        R                  R"                  U-   [
        R                  R$                  -   SS9  g g )Nr  r  /z'%s' %s%s%sr  )r   r   rf   r  r  r	   r  r  r,   r  r*   r  r  r~  r  r  r  r  r  )r;   tokenr<   failedr  fgcolorr  s          rA   _trace_matchParseContext._trace_match  s    :::E""113<<tC"&QtfA;BD****Y6**..94113::<I 9,	KK""W,}<%'""Y.1F1FF   rD   c                Z    S U R                   S S S2    5       nU" U R                  X15      $ )Nc              3  8   #    U  H  oR                   v   M     g 7frT   r  )rY  rc  s     rA   r[  /ParseContext._make_exception.<locals>.<genexpr>  s     <%;VV%;r]  r4   )ro   r   )r;   itemrj  rd  s       rA   _make_exceptionParseContext._make_exception  s,    <T%5%5dd%;<	t~~y77rD   c                     U R                  XS9eNri  )r  )r;   r  rj  s      rA   rm  ParseContext._error   s    ""4"99rD   c                &    U R                  S5        g )Nfail)rm  rW   s    rA   _failParseContext._fail#  s    FrD   c           
         U R                   n[        U R                  UUUU R                  R                  U5      U R                  R                  U5      U R                  R
                  S9$ )N)r   r   r   endposlineendlinealerts)r   r   r   posliner   r  )r;   r<   r   r  s       rA   _get_parseinfoParseContext._get_parseinfo&  sY    nn'',NN**62::$$
 	
rD   c                     U R                   S   $ r   )ro   rW   s    rA   r   ParseContext.rule2  r   rD   c                X    [        U R                  U R                  U R                  5      $ rT   )r   r   r   rr   rW   s    rA   memokeyParseContext.memokey6  s    tyy$))T]];;rD   c                    U R                  5       (       a)  UR                  R                  (       a  X R                  U'   U$ rT   )rT  r   r6   r   )r;   keymemos      rA   _memoizeParseContext._memoize:  s.    388#9#9#KKrD   c                <    U R                   R                  US 5        g rT   )r   r"  r;   r  s     rA   _forgetParseContext._forget?  s    T"rD   c                8    U R                   R                  U5      $ rT   )r   r  r  s     rA   	_memo_forParseContext._memo_forB  s    {{s##rD   c                B    [        XR                  U R                  5      $ rT   )r   r   rr   rA  s     rA   	_mkresultParseContext._mkresultH  s    $		4==99rD   c                    [        UR                  5      (       a4  [        [        UR                  5      UR                  UR
                  5      nX R                  U'   g rT   )r"   r<  r   rQ   newposnewstater   )r;   r  results      rA   _save_resultParseContext._save_resultK  sA    6;;$fmmV__F $crD   c                    UR                   $ rT   )r5   r   s     rA   _is_recursiveParseContext._is_recursiveR  s    """rD   c                v    U R                  UR                  R                  [        S9nU R	                  X5        g r  )r  r   r<   r   r  )r;   r  r  s      rA   _set_left_recursion_guard&ParseContext._set_left_recursion_guardU  s,    !!#((--9L!McrD   c                   U =R                   U/-  sl         U R                  n U R                  5         S U l        U R	                  U5      nUu  pEnU R                  U5        X`l        U R                  U5        U R                  5         UU R                   R                  5         $ ! [         a"    U R                  SUR                   S35         OE[         a9  nU R                  U5        U R                  U5        U R                  U5        e S nAff = f U R                   R                  5         g ! U R                   R                  5         f = f)NzExpecting <>)ro   r   r  rq   _recursive_callr   rr   r5  r  r"  r   rm  r<   r   r   r  )r;   r=   r   r  r<  r  r  r   s           rA   r:   ParseContext._callY  s   XJ&ii	#"DO))(3F%+"D(JJv$MT"!   "  	8KK+hmm_A67 	JJsO((+"		 8   "D  "s0   A&B% %)DD1 	D4DDD1 1Ec                6    S n[        U R                  U5        g )Nc                "    [        U[        5      $ rT   )r   r   )r  r   s     rA   filter4ParseContext._clear_recursion_errors.<locals>.filterv  s    e%899rD   )r$   r   )r;   r  s     rA   _clear_recursion_errors$ParseContext._clear_recursion_errorsu  s    	: 	4;;'rD   c                   U R                  U5        U R                  nUR                  (       d  U R                  X5      $ U R                  (       d  U R                  S[        S9  U =R                  S-  sl        X R                  ;   a  U R                  U   nOU R                  UR                  [        S9nX0R                  U'   U R                  nUS-
  n  U R                  5         U R                  X5      nU R                  U5        UR                  U:  a   U R!                  X&5        UR                  nUnOOMf  U =R                  S-  sl        [#        U[$        5      (       a  UeU$ ! [         a     M;  f = f)NzLeft recursion detectedri  r   )r   r  r5   _invoke_ruler   rm  r   r   r   r  r<   r   r  r   r   r  r  r   	Exception)r;   r=   r  r  initiallastpos
new_results          rA   r  ParseContext._recursive_call{  sZ   "ll""$$X33$$KK1;NKO"--]]3'F))': * F "(MM#iiGkG002!%!2!28!AJJJw' $$w.%%c6(//G'F  	"fi((L # s   2E+ +
E98E9c                   U R                  U5      n[        U[        5      (       a  UeU(       a  U$ U R                  U5        U R	                  5           U R                  U5        UR                  U 5        U R                  UR                  U5      nU R                  X5      nU R                  U5      nU R                  X%5        UU R                  5         $ ! [         a$  nU R                  [        U5      5         S nAO,S nAff = f! [          a  nU R                  X&5        e S nAff = f U R                  5         g ! U R                  5         f = frT   )r  r   r  r  r  r   r>   	_get_noder   _invoke_semantic_ruler  r  r#  r   rm  ry  r   )r;   r=   r  r  r<  r  r   s          rA   r  ParseContext._invoke_rule  s   ~~c"dI&&JK&&s+		$  *d#~~cggx811(A-c* MMO # $CF##$ 	MM#!	 $
 MMODMMOsI   A2C 
D"D<D	  D? DD	 	
D*D%%D**D? ?Ec                <   U R                   nU(       d?  [        U R                  5      (       a  [        U R                  5      nU$ U R                  nU$ SU;   a  US   nU$ U R                  (       a+  UR                  U R                  UR                  U5      5        U$ )N@)r   r"   r&  rV   r   set_parseinfor  r<   )r;   r   r=   r<  s       rA   r  ParseContext._get_node  s    xx&-dhh&7&75?D
  >BXXD
 	 D[9D  ^^t228==#FGrD   c                &   U R                  UR                  5      u  p4U(       a2  U" U/UR                  =(       d    SQ70 UR                  =(       d    0 D6n[	        U5      (       a  U" X5        UR
                  (       a  U R                  U5        U$ )NrI   )ru  r<   r@   r?   rr  r7   _check_name)r;   r   r<  semantic_rulers  s        rA   r  "ParseContext._invoke_semantic_rule  sz    "&"<"<TYY"G )r/3}}/BD HT <<T"rD   c                    U R                  5         U R                  R                  U5      c$  U R                  USS9  U R	                  U[
        S9  U R                  U5        U R                  U5        U$ NTr  ri  )r   r   matchr  rm  r   r5  )r;   r  s     rA   _tokenParseContext._token  sg    >>&.eD1KK{K3% rD   c                t   U R                  5         U R                  U5        [        U[        5      (       a%   [        R
                  " UR                  5       5      nU R                  U5        U$ ! [        [        4 a8    SU;   a  [        U5      n[        S[        U5      -    0 U R                  5      n NZf = f)Nr  f)r   r  r   ry  
stdlib_astliteral_evalstrip
ValueErrorSyntaxErrorr'   evalreprr   r5  )r;   literals     rA   	_constantParseContext._constant  s    '"gs##$11'--/B 	! , 7?"7mGT']*+b$((s   $A/ /AB76B7c                    U R                  5         U R                  SU-   SU S3SS9  U R                  R                  R	                  [        XS95        g )N^`Tr  )messagelevel)r   r  r   r  r  r   )r;   r  r  s      rA   _alertParseContext._alert  sO    S5[M7)15dC

  w!DErD   c                    U R                   R                  U5      nUc%  U R                  SUSS9  U R                  U[        S9  U R                  X!5        U R                  U5        U$ )Nr  Tr  ri  )r   matchrer  rm  r   r5  )r;   patternr  s      rA   _patternParseContext._pattern  sa    &&w/=b'$7KKK7%)rD   c                6    U R                   R                  5       $ rT   )r   atendrW   s    rA   _eofParseContext._eof      ~~##%%rD   c                6    U R                   R                  5       $ rT   )r   ateolrW   s    rA   _eolParseContext._eol  r"  rD   c                    U R                  5         U R                  R                  5       (       d  U R                  S[        S9  g g )NzExpecting end of textri  )r   r   r  rm  r   rW   s    rA   
_check_eofParseContext._check_eof   s=    ~~##%%KK'1I   &rD   c              #     #    U R                   nU R                  SS9  S U l         S v   U R                  5         g ! [         a    U R                  5         Xl         e f = f7f)NT)r  )rr   r  r   r(  r   r#  r;   rZ  s     rA   _tryParseContext._try  sT     MMt$	OO 	MMOM	s   #A ; A "AA c              #    #    S U l         U =R                  S/-  sl         U R                  5          S v   S S S 5        [        5       e! , (       d  f       [        5       e= f! [         a    e [
         a+  nU R                  5       (       a  [	        U5      Ue S nAOS nAff = f U R                  R                  5         g ! U R                  R                  5         f = f7frM   )r   rp   r,  r   r   r   rD  r"  r   s     rA   _optionParseContext._option  s     E7"
	" !## !## 	 	*!!l) "	*! OO!DOO!sP   CA" AA" 
AA" "B!6!BC  B!!C  %C CCc              #  t   #    S U l         [        [        5         S v   S S S 5        g ! , (       d  f       g = f7frT   )r   r   r   rW   s    rA   _choiceParseContext._choice$  s"     o& '&&s   8'	8
58c              #     #    S U l         U R                  5          U R                  5          S v   S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f7frT   )r   r2  r/  rW   s    rA   	_optionalParseContext._optional*  s2     \\^T\\^ ,^^^^^^s1   A#AAA	A#
A	A
A A#c              #     #    U R                  5          S v   U R                  SS9  g ! [         a    U R                  5         e f = f7f)NT)r6  )r/  r7  r  r2  rW   s    rA   _groupParseContext._group0  s?     	OO4O( 	MMO	s   A( AAAc              #  .  #    U R                   nU R                  5         U =R                  S-  sl         S v   U R                  5         U =R                  S-  sl        Xl         g ! U R                  5         U =R                  S-  sl        Xl         f = f7f)Nr   )rr   r  rs   r#  r+  s     rA   _ifParseContext._if:  si     MM1	MMOOOq OM MMOOOq OMs   2BA% ,B%-BBc              #     #     U R                  5          S v   S S S 5        U R                  S[        S9  g ! , (       d  f       N#= f! [         a     g f = f7f)Nr  ri  )r;  rm  r   r   rW   s    rA   _ifnotParseContext._ifnotF  sE     	5 
 KKOK4  		s;   AA 6A A
A A 
AAAAc                    U R                  5          U" 5         U R                  nU R                  5         [        U5      (       a  [	        U5      nU(       d  U R                  U5        U$ ! U R                  5         f = frT   )r/  r&  r2  r"   rQ   r5  )r;   blockdropr&  s       rA   _isolateParseContext._isolateP  s]    	G((CMMO3<<#,CS!
 MMOs   A* *A<c                |    U R                  5          U R                  5          U R                  nU(       a  U R                  X#S9  U R	                  5         U R                  U5        U R                  U:X  a  U R                  S5        S S S 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       O= fM  )N)rB  zempty closure)r2  r/  r   rC  rQ  rm  )r;   rA  prefix
dropprefixps        rA   _repeatParseContext._repeat^  s    \\^		Af>		MM%(yyA~O4 $   #^   s#   B+A%B	B+
B(	$B++
B9c                j   U R                  5          / U l        U R                  5          U" 5         U R                  /U l        S S S 5        U R                  XUS9  [	        U R                  5      U l        U R                  5       $ ! , (       d  f       NH= f! [         a    U R                  5         e f = fN)rF  rG  )r/  r&  r5  rI  rQ   r7  r  r2  r;   rA  sepomitseps       rA   _closureParseContext._closuren  s    
	DH! HH: " LLwL?txx(DH??$$ "!  	MMO	s#   B BAB 
BB B2c                   U R                  5          U" 5         U R                  /U l        U R                  XUS9  [        U R                  5      U l        U R	                  5       $ ! [
         a    U R                  5         e f = frL  )r/  r&  rI  rQ   r7  r  r2  rM  s       rA   _positive_closureParseContext._positive_closure|  sk    	GzDHLLwL?txx(DH??$$ 	MMO	s   AA% %Bc                >    [        / 5      nU R                  U5        U$ rT   )rQ   r5  )r;   r&  s     rA   _empty_closureParseContext._empty_closure  s    bk
rD   c                "    U R                  XSS9$ NT)rN  rO  rP  r;   rA  rN  s      rA   _gatherParseContext._gather  s    }}UT}::rD   c                "    U R                  XSS9$ rY  rS  r[  s      rA   _positive_gatherParseContext._positive_gather  s    %%ed%CCrD   c                     U R                  XS9$ N)rN  rZ  r[  s      rA   _joinParseContext._join  s    }}U},,rD   c                     U R                  XS9$ rc  r_  r[  s      rA   _positive_joinParseContext._positive_join  s    %%e%55rD   c                z    [        U R                  X5      5      U l        U R                  U l        U R                  $ rT   )r#   rg  r&  r   r[  s      rA   
_left_joinParseContext._left_join  s-    d11%=>xxrD   c                z    [        U R                  X5      5      U l        U R                  U l        U R                  $ rT   )r%   rg  r&  r   r[  s      rA   _right_joinParseContext._right_join  s-    t225>?xxrD   c                    [        U5      nU R                  (       d  U R                  R                  (       a  UR                  5       nXR                  ;   a  [        SU S35      eg )N"z" is a reserved word)ry  r   r   upperr   r   r  s     rA   r  ParseContext._check_name  sM    4y??dnn77::<D== (1TF2F)GHH !rD   c                    S U l         g rT   )r   rW   s    rA   _voidParseContext._void  s	    rD   c                    U R                  5       nUc$  U R                  USS9  U R                  U[        S9  U R                  U5        U R	                  U5        U$ r  )r   r  rm  r   r5  )r;   cs     rA   _anyParseContext._any  sV    JJL9a-KK;K/!rD   c                j   U R                  5       (       d"   U R                  5          U" 5         S S S 5         U" 5         g ! , (       d  f       N= f! [         a     Of = fU R                  nU R	                  5         U R                  U:X  a  U R                  5         U R                  5       (       d  M  N}rT   )r   r;  r   r   r   r   )r;   rA  r   s      rA   _skip_toParseContext._skip_to  s    ))++XXZG  
 
 	  Z  ))CyyC

 ))++s'   A A A  
A
A 
AA)re   rp   rt   r   rq   rs   r   r   r   ro   rh   rn   rf   r   rd   r&  r   rr   rT   )rd   zParserConfig | None)rd   r   )returnztype[Tokenizer])F)TrM   )zr8   rZ   r[   r\   rb   ri   propertyrx   rg   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   setterr   ru   r   r   r   r   r   r   r  r  staticmethodr  r  r  r  r#  r(  r&  r/  r2  r7  r5  r'  r:  rD  rQ  rT  rf  r   ru  r~  r  r  r  r  r  rP  r  r   r  rm  r  r  r   r  r  r  r  r  r  r  r  r:   r  r  r  r  r  r  r  r  r  r   r%  r(  r   r,  r/  r2  r5  r8  r;  r>  rC  rI  rP  rS  rV  r\  r`  rd  rg  rj  rm  r  rt  rx  r{  r]   __classcell__)rk   s   @rA   r-   r-   m   s   
" 
"
) # #   + + , , ( ( / / 2 2 1 1 . . 2 2 - - - - , , 5 5 1 1 + +   , ,)-8   , ,       # #"
"&) $ $   	ZZ (0  
0D
,!   	ZZ :
	$#&(? ",
$LMOMK2 -8 8 $/ :

 $ $ < <
#$:$##8('R4
F
&& 
 
 " "  
  
   	 	 5 5 

;D-6

I rD   r-   )>
__future__r   r   r  rE   rz  
contextlibr   r   r   r  r   r	   r
   r   collectionsr   r   
exceptionsr   r   r   r   r   r   r   r   r   r   r   r   infosr   r   r   r   r   r   r   r    utilr!   r"   r#   r$   r%   r&   r'   util.unicode_charactersr(   r)   r*   r+   r,   __all__r.   r/   r0   rO   listrQ   r-   rI   rD   rA   <module>r     s    "   
 /  * *  +      "    =8
!d !
V VrD   