B gQlؐ"@spddlZddlZddlmZGdddeZddZdZiZx.e D]"Z e rFe \Z Z eee ee <qFWdS) N)tokenc@s<eZdZddZddZddZddZd d Zd d Zd S)GrammarcCs<i|_i|_g|_i|_dg|_i|_i|_i|_d|_dS)N)rZEMPTY) symbol2number number2symbolstatesdfaslabelskeywordstokens symbol2labelstart)selfr8/opt/alt/python37/lib/python3.7/lib2to3/pgen2/grammar.py__init__MszGrammar.__init__c Cs2t|d}t|j}t||dWdQRXdS)Nwb)open_make_deterministic__dict__pickledump)rfilenamefdrrrrXs  z Grammar.dumpc Cs0t|d}t|}WdQRX|j|dS)Nrb)rrloadrupdate)rrrrrrrris z Grammar.loadcCs|jt|dS)N)rrrloads)rZpklrrrr osz Grammar.loadscCsX|}x"dD]}t||t||qW|jdd|_|jdd|_|j|_|S)N)rrr r r r ) __class__setattrgetattrcopyr rr)rnewZ dict_attrrrrr$ss z Grammar.copycCsvddlm}td||jtd||jtd||jtd||jtd||jtd|jdS) Nr)pprintZs2nZn2srr r r)r&printrrrr r r)rr&rrrreports      zGrammar.reportN) __name__ __module__ __qualname__rrrr r$r(rrrrrs 6  rcCs^t|tr&ttdd|DSt|tr>dd|DSt|trZtdd|DS|S)Ncss|]\}}|t|fVqdS)N)r).0kvrrr sz&_make_deterministic..cSsg|] }t|qSr)r)r,errr sz'_make_deterministic..css|]}t|VqdS)N)r)r,r0rrrr/s) isinstancedict collections OrderedDictsorteditemslisttuple)toprrrrs   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 )r4rrobjectrrZ opmap_rawZopmap splitlineslinesplitopnamer#rrrrs y>