B  ¯XW9Rê%ã@s.ddlZddlmZmZGdd„dejƒZdS)éN)ÚgrammarÚtokenc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú ConvertercCs | |¡| |¡| ¡dS)N)Úparse_graminit_hÚparse_graminit_cÚ finish_off)ÚselfZ graminit_hZ graminit_c©r ú5/opt/alt/python37/lib/python3.7/lib2to3/pgen2/conv.pyÚrun/s  z Converter.runc CsÂy t|ƒ}Wn2tk r>}ztd||fƒdSd}~XYnXi|_i|_d}xl|D]d}|d7}t d|¡}|s’| ¡r’td||| ¡fƒqV| ¡\}}t |ƒ}||j|<||j|<qVWdS)NzCan't open %s: %sFréz^#define\s+(\w+)\s+(\d+)$z%s(%s): can't parse %sT) ÚopenÚOSErrorÚprintZ symbol2numberZ number2symbolÚreÚmatchÚstripÚgroupsÚint) rÚfilenameÚfÚerrÚlinenoÚlineÚmoÚsymbolÚnumberr r r r5s&      zConverter.parse_graminit_hc! CsÞy t|ƒ}Wn2tk r>}ztd||fƒdSd}~XYnXd}|dt|ƒ}}|dt|ƒ}}|dt|ƒ}}i}g}x‚| d¡rx¼| d¡rNt d|¡}ttt |  ¡ƒƒ\} } } g} xRt | ƒD]F} |dt|ƒ}}t d|¡}ttt |  ¡ƒƒ\}}|   ||f¡qÒW|dt|ƒ}}| || | f<|dt|ƒ}}q”Wt d|¡}ttt |  ¡ƒƒ\}}g}x^t |ƒD]R} |dt|ƒ}}t d |¡}ttt |  ¡ƒƒ\} } } || | f} |  | ¡q€W|  |¡|dt|ƒ}}|dt|ƒ}}q†W||_ i}t d |¡}t | d¡ƒ}xòt |ƒD]æ}|dt|ƒ}}t d |¡}| d ¡}ttt | dd dd¡ƒƒ\}}}}||}|dt|ƒ}}t d|¡}i}t| d¡ƒ}xPt|ƒD]D\}}t|ƒ}x0t dƒD]$}|d|>@ràd||d|<qàWqÆW||f||<q6W|dt|ƒ}}||_g}|dt|ƒ}}t d|¡}t | d¡ƒ}xjt |ƒD]^}|dt|ƒ}}t d|¡}|  ¡\}}t |ƒ}|dkr¸d}nt|ƒ}|  ||f¡qrW|dt|ƒ}}||_|dt|ƒ}}|dt|ƒ}}t d|¡}t | d¡ƒ}|dt|ƒ}}|dt|ƒ}}t d|¡}t | d¡ƒ}|dt|ƒ}}t d|¡}t | d¡ƒ} | |_|dt|ƒ}}y|dt|ƒ}}Wntk rØYnXdS)NzCan't open %s: %sFrr z static arc z)static arc arcs_(\d+)_(\d+)\[(\d+)\] = {$z\s+{(\d+), (\d+)},$z'static state states_(\d+)\[(\d+)\] = {$z\s+{(\d+), arcs_(\d+)_(\d+)},$zstatic dfa dfas\[(\d+)\] = {$z0\s+{(\d+), "(\w+)", (\d+), (\d+), states_(\d+),$ééééz\s+("(?:\\\d\d\d)*")},$éz!static label labels\[(\d+)\] = {$z\s+{(\d+), (0|"\w+")},$Ú0z \s+(\d+),$z\s+{(\d+), labels},$z \s+(\d+)$)r rrÚnextÚ startswithrrÚlistÚmaprrÚrangeÚappendÚstatesÚgroupÚevalÚ enumerateÚordÚdfasÚlabelsÚstartÚ StopIteration)!rrrrrrZallarcsr)rÚnÚmÚkZarcsÚ_ÚiÚjÚsÚtÚstater.ZndfasrrÚxÚyÚzÚfirstZ rawbitsetÚcZbyter/Znlabelsr0r r r rTsº         "        zConverter.parse_graminit_ccCs\i|_i|_xJt|jƒD]<\}\}}|tjkrB|dk rB||j|<q|dkr||j|<qWdS)N)ÚkeywordsÚtokensr,r/rÚNAME)rZilabelÚtypeÚvaluer r r rùs zConverter.finish_offN)Ú__name__Ú __module__Ú __qualname__r rrrr r r r r$s  &r)rZpgen2rrZGrammarrr r r r Ús