
    ;e                         	 d dl Z ddlmZ  G d de          ZdZi Ze                                D ]*Zer&e	                                \  Z
Z eee          ee
<   +[[
[dS )    N   )tokenc                   4    e Zd Z	 d Zd Zd Zd Zd Zd ZdS )Grammarc                     i | _         i | _        g | _        i | _        dg| _        i | _        i | _        i | _        d| _        d S )N)r   EMPTY   )	symbol2numbernumber2symbolstatesdfaslabelskeywordstokenssymbol2labelstart)selfs    ,/usr/lib/python3.11/lib2to3/pgen2/grammar.py__init__zGrammar.__init__L   sJ    	#n


    c                     	 t          |d          5 }t          j        | j        |t          j                   d d d            d S # 1 swxY w Y   d S )Nwb)openpickledump__dict__HIGHEST_PROTOCOL)r   filenamefs      r   r   zGrammar.dumpW   s    7(D!! 	CQKq&*ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   &AA	A	c                     	 t          |d          5 }t          j        |          }d d d            n# 1 swxY w Y   | j                            |           d S )Nrb)r   r   loadr   update)r   r   r   ds       r   r"   zGrammar.load\   s    9(D!! 	QAA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Qs   377c                 `    	 | j                             t          j        |                     d S )N)r   r#   r   loads)r   pkls     r   r&   zGrammar.loadsb   s+    AV\#../////r   c           	         	 |                                  }dD ]3}t          ||t          | |                                                     4| j        d d          |_        | j        d d          |_        | j        |_        |S )N)r
   r   r   r   r   r   )	__class__setattrgetattrcopyr   r   r   )r   new	dict_attrs      r   r,   zGrammar.copyf   s    	 nn4 	E 	EICGD)$<$<$A$A$C$CDDDD[^
[^
J	
r   c                 t   	 ddl m } t          d            || j                   t          d            || j                   t          d            || j                   t          d            || j                   t          d            || j                   t          d| j                   d S )	Nr   )pprints2nn2sr   r   r   r   )r0   printr
   r   r   r   r   r   )r   r0   s     r   reportzGrammar.reports   s    H!!!!!!et!"""et!"""ht{ftyht{gtz"""""r   N)	__name__
__module____qualname__r   r   r"   r&   r,   r4    r   r   r   r      sw        3j	 	 	C C C
     0 0 0  # # # # #r   r   a  
( LPAR
) RPAR
[ LSQB
] RSQB
: COLON
, COMMA
; SEMI
+ PLUS
- MINUS
* STAR
/ SLASH
| VBAR
& AMPER
< LESS
> GREATER
= EQUAL
. DOT
% PERCENT
` BACKQUOTE
{ LBRACE
} RBRACE
@ AT
@= ATEQUAL
== EQEQUAL
!= NOTEQUAL
<> NOTEQUAL
<= LESSEQUAL
>= GREATEREQUAL
~ TILDE
^ CIRCUMFLEX
<< LEFTSHIFT
>> RIGHTSHIFT
** DOUBLESTAR
+= PLUSEQUAL
-= MINEQUAL
*= STAREQUAL
/= SLASHEQUAL
%= PERCENTEQUAL
&= AMPEREQUAL
|= VBAREQUAL
^= CIRCUMFLEXEQUAL
<<= LEFTSHIFTEQUAL
>>= RIGHTSHIFTEQUAL
**= DOUBLESTAREQUAL
// DOUBLESLASH
//= DOUBLESLASHEQUAL
-> RARROW
:= COLONEQUAL
)r    r   objectr   	opmap_rawopmap
splitlineslinesplitopnamer+   r8   r   r   <module>rB      s   	       j# j# j# j# j#f j# j# j#^1	f 	  "" ) )D )::<<DGE4((b	"dddr   