a  ze@s\ddlZddlmZGdddeZdZiZeD]"Zer4e \Z Z e ee ee <q4dS)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)selfrI/opt/bitninja-python-dojo/embedded/lib/python3.9/lib2to3/pgen2/grammar.py__init__LszGrammar.__init__cCs@t|d"}t|j|tjWdn1s20YdS)Nwb)openpickledump__dict__HIGHEST_PROTOCOL)rfilenamefrrrrWs z Grammar.dumpcCsDt|d}t|}Wdn1s*0Y|j|dS)Nrb)rrloadrupdate)rrrdrrrr\s (z Grammar.loadcCs|jt|dS)N)rrrloads)rZpklrrrrbsz Grammar.loadscCsT|}dD]}t||t||q |jdd|_|jdd|_|j|_|S)N)rrr r r r ) __class__setattrgetattrcopyr rr)rnewZ dict_attrrrrr#fsz Grammar.copycCsvddlm}td||jtd||jtd||jtd||jtd||jtd|jdS) Nr)pprintZs2nZn2srr r r)r%printrrrr r r)rr%rrrreportss      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 ) rrobjectrZ opmap_rawZopmap splitlineslinesplitopnamer"rrrrs o3