
    #hJ                    R    S SK Jr  S SKrS SKrS SKJr  SSKJrJr   " S S\	5      r
g)    )annotationsN)reduce   )asjsonis_listc                     ^  \ rS rSrSrU 4S jr\S 5       r\U 4S j5       rU 4S jr	S r
S rSU 4S	 jjrS
 rS rU 4S jrS rU 4S jrU 4S jrU 4S jrU 4S jrS rS rSU 4S jjrSS jrS rS rS rSrU =r$ )AST
   Fc                T   > [         TU ]  5         U R                  " U0 UD6  SU l        g )NT)super__init__update_frozen)selfargskwargs	__class__s      I/Users/user/Downloads/htwk/venv/lib/python3.13/site-packages/tatsu/ast.pyr   AST.__init__   s&    T$V$    c                    U R                   $ Nr   r   s    r   frozen
AST.frozen   s    ||r   c                D   >  [         TU ]  S5      $ ! [         a     g f = fN	parseinfo)r   __getitem__KeyError)r   r   s    r   r   AST.parseinfo   s*    	7&{33 		s    
c                &   > [         TU ]  SU5        g r   r   __setitem__)r   valuer   s     r   set_parseinfoAST.set_parseinfo   s    K/r   c                .    [         R                   " U 5      $ r   )copyr   s    r   r*   AST.copy    s    yyr   c                    [        U 5      $ r   )r   r   s    r   r   
AST.asjson#   s    d|r   c                   > U R                  U5      nU R                  U5      nUc  U(       a  U/nOUc  O[        U5      (       a  / UQUPnOXB/n[        TU ]  X5        g r   )_safekeygetr   r   r%   )r   keyr&   
force_listpreviousr   s        r   _setAST._set&   se    mmC 88C=
GEX&h&&E%EC'r   c                "    U R                  XSS9$ )NT)r2   r4   r   r1   r&   s      r   _setlistAST._setlist5   s    yyy55r   c                    [        U 5      $ r   )r	   r   s    r   __copy__AST.__copy__8   s    4yr   c                x   > X;   a  [         TU ]  U5      $ U R                  U5      nX;   a  [         TU ]  U5      $ g r   )r   r    r/   r   r1   r   s     r   r    AST.__getitem__;   s>    ;7&s++mmC ;7&s++r   c                &    U R                  X5        g r   r7   r8   s      r   r%   AST.__setitem__C   s    		#r   c                F   > U R                  U5      n[        TU ]	  U5        g r   )r/   r   __delitem__r?   s     r   rD   AST.__delitem__F   s    mmC C r   c                   > U R                   (       a3  U[        U 5      ;  a$  [        [        U 5      R                   SU S35      e[
        TU ]  X5        g )Nz. attributes are fixed.  Cannot set attribute "z".)r   varsAttributeErrortype__name__r   __setattr__)r   namer&   r   s      r   rK   AST.__setattr__J   sR    <<DT
2 :&&' (**.r3  	D(r   c                   > U R                  U5      nX ;   a  X   $ X;   a  X   $  [        TU ]	  U5      $ ! [         a     g f = fr   )r/   r   __getattribute__rH   )r   rL   r1   r   s      r   __getattr__AST.__getattr__R   sR    mmD!;9\:	7+D11 		s   5 
AAc                R   >  [         TU ]  U5        g! [        [        4 a     gf = f)NTF)r   rO   	TypeErrorrH   )r   rL   r   s     r   __hasattribute__AST.__hasattribute__^   s3    	G$T*  >* 		s    &&c                B    [         [        U R                  5       5      44$ r   )r	   listitemsr   s    r   
__reduce__AST.__reduce__f   s    d4::<(*++r   c                l    U R                  U5      (       a  US-  nU R                  U5      (       a  M  U$ )N_)rT   )r   r1   s     r   r/   AST._safekeyi   s4    ##C((3JC ##C((
r   c                   >^  U 4S jU 5        H  nUT ;  d  M  [         TT ]  US 5        M     U 4S jU=(       d    /  5        H  nUT ;  d  M  [         TT ]  U/ 5        M     g )Nc              3  F   >#    U  H  nTR                  U5      v   M     g 7fr   r/   .0kr   s     r   	<genexpr>AST._define.<locals>.<genexpr>o   s     3dDMM!$$d   !c              3  F   >#    U  H  nTR                  U5      v   M     g 7fr   r`   ra   s     r   rd   re   s   s     >oDMM!$$orf   r$   )r   keys	list_keysr1   r   s   `   r   _defineAST._definen   sU    3d3C$#C. 4 ?io2o>C$#C, ?r   c           
     h    U R                  5        VVs0 s H  u  p#U[        X1S9_M     snn$ s  snnf )N)seen)rX   r   )r   rm   rL   r&   s       r   __json__AST.__json__w   s,    BF**,O,;4fU..,OOOs   .c                4    [        U R                  5       5      $ r   )reprr   r   s    r   __repr__AST.__repr__z   s    DKKM""r   c                4    [        U R                  5       5      $ r   )strr   r   s    r   __str__AST.__str__}   s    4;;=!!r   c                b    [        [        R                  S U R                  5        5       S5      $ )Nc              3  R   #    U  H  u  p[        U[        U5      45      v   M     g 7fr   )hashid)rb   rL   r&   s      r   rd   AST.__hash__.<locals>.<genexpr>   s#     ET4E#$$s   %'r   )r   operatorxorrX   r   s    r   __hash__AST.__hash__   s'    LLE

E
 	
r   r   )Fr   )rJ   
__module____qualname____firstlineno__r   r   propertyr   r   r'   r*   r   r4   r9   r<   r    r%   rD   rK   rP   rT   rY   r/   rj   rn   rr   rv   r   __static_attributes____classcell__)r   s   @r   r	   r	   
   s    G
    0(6!)
,
-P#"
 
r   r	   )
__future__r   r*   r}   	functoolsr   utilr   r   dictr	    r   r   <module>r      s"    "    !|
$ |
r   