3 \��@stddlZddlZddlmZmZGdd�de�Zdd�ZdZiZ x.ej �D]"Z e rJe j �\Z Zeee�e e <qJWdS) �N�)�token�tokenizec@s<eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd S)�GrammarcCs<i|_i|_g|_i|_dg|_i|_i|_i|_d|_dS)Nr�EMPTY�)rr) � symbol2number� number2symbol�states�dfas�labels�keywords�tokens� symbol2label�start)�self�r�-/usr/lib64/python3.6/lib2to3/pgen2/grammar.py�__init__MszGrammar.__init__c Cs2t|d��}t|j�}tj||d�WdQRXdS)N�wb�)�open�_make_deterministic�__dict__�pickle�dump)r�filename�f�drrrrXs  z Grammar.dumpc Cs0t|d��}tj|�}WdQRX|jj|�dS)N�rb)rr�loadr�update)rrrrrrrr is z Grammar.loadcCs|jjtj|��dS)N)rr!r�loads)rZpklrrrr"osz Grammar.loadscCsX|j�}x"dD]}t||t||�j��qW|jdd�|_|jdd�|_|j|_|S)Nrr r r rr)rr r r rr)� __class__�setattr�getattr�copyr r r)r�newZ dict_attrrrrr&ssz Grammar.copycCsvddlm}td�||j�td�||j�td�||j�td�||j�td�||j�td|j�dS) Nr)�pprintZs2nZn2sr r r r)r(�printrr r r r r)rr(rrr�report�s      zGrammar.reportN) �__name__� __module__� __qualname__rrr r"r&r*rrrrrs 6  rcCs^t|t�r&tjtdd�|j�D���St|t�r>dd�|D�St|t�rZtdd�|D��S|S)Ncss|]\}}|t|�fVqdS)N)r)�.0�k�vrrr� �sz&_make_deterministic..cSsg|] }t|��qSr)r)r.�errr� �sz'_make_deterministic..css|]}t|�VqdS)N)r)r.r2rrrr1�s)� isinstance�dict� collections� OrderedDict�sorted�items�list�tuple)�toprrrr�s   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 )r6r�rr�objectrrZ opmap_rawZopmap� splitlines�line�split�op�namer%rrrr�sy=