a XC?h��@s\ddlZddlmZGdd�de�ZdZiZe��D]"Zer4e� �\Z Z e ee �ee <q4dS)�N�)�tokenc@s<eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd S)�GrammarcCs<i|_i|_g|_i|_dg|_i|_i|_i|_d|_dS)N)rZEMPTY�) � symbol2number� number2symbol�states�dfas�labels�keywords�tokens� symbol2label�start)�self�r�:/opt/alt/python39/lib64/python3.9/lib2to3/pgen2/grammar.py�__init__LszGrammar.__init__cCs@t|d��"}t�|j|tj�Wd�n1s20YdS)N�wb)�open�pickle�dump�__dict__ZHIGHEST_PROTOCOL)r�filename�frrrrWs z Grammar.dumpcCsDt|d��}t�|�}Wd�n1s*0Y|j�|�dS)N�rb)rr�loadr�update)rrr�drrrr\s (z Grammar.loadcCs|j�t�|��dS)N)rrr�loads)rZpklrrrrbsz Grammar.loadscCsT|��}dD]}t||t||����q |jdd�|_|jdd�|_|j|_|S)N)rrr r r r )� __class__�setattr�getattr�copyr rr)r�newZ dict_attrrrrr"fsz Grammar.copycCsvddlm}td�||j�td�||j�td�||j�td�||j�td�||j�td|j�dS) Nr)�pprintZs2nZn2srr r r)r$�printrrrr r r)rr$rrr�reportss      zGrammar.reportN) �__name__� __module__� __qualname__rrrrr"r&rrrrrs 6  ra ( 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�objectrZ opmap_rawZopmap� splitlines�line�split�op�namer!rrrr�s o3