
    }fJ                    R    d dl mZ d dlZd dlZd dlmZ ddlmZmZ  G d de	      Z
y)    )annotationsN)reduce   )asjsonis_listc                       e Zd ZdZ fdZed        Ze fd       Z fdZd Z	d Z
d fd	Zd	 Zd
 Z fdZd Z fdZ fdZ fdZ fdZd Zd Zd fd	ZddZd Zd Zd Z xZS )ASTFc                T    t         |            | j                  |i | d| _        y )NT)super__init__update_frozen)selfargskwargs	__class__s      H/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/tatsu/ast.pyr   zAST.__init__   s(    T$V$    c                    | j                   S N)r   r   s    r   frozenz
AST.frozen   s    ||r   c                B    	 t         |   d      S # t        $ r Y y w xY wN	parseinfo)r   __getitem__KeyError)r   r   s    r   r   zAST.parseinfo   s*    	7&{33 		s    	c                &    t         |   d|       y r   r   __setitem__)r   valuer   s     r   set_parseinfozAST.set_parseinfo   s    K/r   c                ,    t        j                   |       S r   )copyr   s    r   r$   zAST.copy    s    yyr   c                    t        |       S r   )r   r   s    r   r   z
AST.asjson#   s    d|r   c                    | j                  |      }| j                  |      }||r|g}n|nt        |      rg ||}n||g}t        |   ||       y r   )_safekeygetr   r   r    )r   keyr!   
force_listpreviousr   s        r   _setzAST._set&   sf    mmC 88C=
GEX&h&&Eu%EC'r   c                *    | j                  ||d      S )NT)r*   r,   r   r)   r!   s      r   _setlistzAST._setlist5   s    yyey55r   c                    t        |       S r   )r	   r   s    r   __copy__zAST.__copy__8   s    4yr   c                t    || v rt         |   |      S | j                  |      }|| v rt         |   |      S y r   )r   r   r'   r   r)   r   s     r   r   zAST.__getitem__;   sB    $;7&s++mmC $;7&s++r   c                (    | j                  ||       y r   r.   r/   s      r   r    zAST.__setitem__C   s    		#ur   c                F    | j                  |      }t        | 	  |       y r   )r'   r   __delitem__r4   s     r   r7   zAST.__delitem__F   s    mmC C r   c                    | j                   r1|t        |       vr$t        t        |       j                   d| d      t
        |   ||       y )Nz. attributes are fixed.  Cannot set attribute "z".)r   varsAttributeErrortype__name__r   __setattr__)r   namer!   r   s      r   r=   zAST.__setattr__J   sT    <<DT
2 :&&' (**.r3  	D%(r   c                    | j                  |      }|| v r| |   S || v r| |   S 	 t        | 	  |      S # t        $ r Y y w xY wr   )r'   r   __getattribute__r:   )r   r>   r)   r   s      r   __getattr__zAST.__getattr__R   sZ    mmD!$;9T\:	7+D11 		s   5 	A Ac                P    	 t         |   |       y# t        t        f$ r Y yw xY w)NTF)r   r@   	TypeErrorr:   )r   r>   r   s     r   __hasattribute__zAST.__hasattribute__^   s3    	G$T*  >* 		s    %%c                B    t         t        | j                               ffS r   )r	   listitemsr   s    r   
__reduce__zAST.__reduce__f   s    d4::<(*++r   c                V    | j                  |      r|dz  }| j                  |      r|S )N_)rD   )r   r)   s     r   r'   zAST._safekeyi   s.    ##C(3JC ##C(
r   c                      fd|D        D ]  }| vst            |d          fd|xs g D        D ]  }| vst            |g         y )Nc              3  @   K   | ]  }j                  |        y wr   r'   .0kr   s     r   	<genexpr>zAST._define.<locals>.<genexpr>o   s     3DMM!$3   c              3  @   K   | ]  }j                  |        y wr   rM   rN   s     r   rQ   zAST._define.<locals>.<genexpr>s   s     >DMM!$>rR   r   )r   keys	list_keysr)   r   s   `   r   _definezAST._definen   s]    3d3 	/C$#C.	/ ?io2> 	-C$#C,	-r   c           	     l    | j                         D ci c]  \  }}|t        ||       c}}S c c}}w )N)seen)rG   r   )r   rX   r>   r!   s       r   __json__zAST.__json__w   s,    BF**,O;4fU..OOOs   0c                4    t        | j                               S r   )reprr   r   s    r   __repr__zAST.__repr__z   s    DKKM""r   c                4    t        | j                               S r   )strr   r   s    r   __str__zAST.__str__}   s    4;;=!!r   c                b    t        t        j                  d | j                         D        d      S )Nc              3  N   K   | ]  \  }}t        |t        |      f        y wr   )hashid)rO   r>   r!   s      r   rQ   zAST.__hash__.<locals>.<genexpr>   s"     EuT4E#$Es   #%r   )r   operatorxorrG   r   s    r   __hash__zAST.__hash__   s'    LLE

E
 	
r   )Fr   )r<   
__module____qualname__r   r   propertyr   r   r"   r$   r   r,   r0   r2   r   r    r7   r=   rA   rD   rH   r'   rV   rY   r\   r_   rf   __classcell__)r   s   @r   r	   r	   
   s    G
    0(6!)
,
-P#"
r   r	   )
__future__r   r$   rd   	functoolsr   utilr   r   dictr	    r   r   <module>rp      s"    "    !|
$ |
r   