a ´iª%ã@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 ú*/usr/lib64/python3.9/lib2to3/pgen2/conv.pyÚrun/s  z Converter.runc CsÂz t|ƒ}Wn6tyB}ztd||fƒWYd}~dSd}~00i|_i|_d}|D]d}|d7}t d|¡}|s”| ¡r”td||| ¡fƒqX| ¡\}}t |ƒ}||j|<||j|<qXdS)NúCan'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¾z t|ƒ}Wn6tyB}ztd||fƒWYd}~dSd}~00d}|dt|ƒ}}|dt|ƒ}}|dt|ƒ}}i}g}| d¡rú| d¡rHt d|¡}ttt |  ¡ƒƒ\} } } g} t | ƒD]F} |dt|ƒ}}t d|¡}ttt |  ¡ƒƒ\}}|   ||f¡qÎ|dt|ƒ}}| || | f<|dt|ƒ}}q’t d|¡}ttt |  ¡ƒƒ\}}g}t |ƒD]R} |dt|ƒ}}t d |¡}ttt |  ¡ƒƒ\} } } || | f} |  | ¡qv|  |¡|dt|ƒ}}|dt|ƒ}}q†||_ i}t d |¡}t | d¡ƒ}t |ƒD]Þ}|dt|ƒ}}t d |¡}| d ¡}ttt | dd dd¡ƒƒ\}}}}||}|dt|ƒ}}t d|¡}i}t| d¡ƒ}t|ƒD]@\}}t|ƒ}t dƒD]$}|d|>@rÌd||d|<qÌq´||f||<q&|dt|ƒ}}||_g}|dt|ƒ}}t d|¡}t | d¡ƒ}t |ƒD]^}|dt|ƒ}}t d|¡}|  ¡\}}t |ƒ}|dkrœd}nt|ƒ}|  ||f¡qV|dt|ƒ}}||_|dt|ƒ}}|dt|ƒ}}t d|¡}t | d¡ƒ}|dt|ƒ}}|dt|ƒ}}t d|¡}t | d¡ƒ}|dt|ƒ}}t d|¡}t | d¡ƒ} | |_|dt|ƒ}}z|dt|ƒ}}Wnty¸Yn0dS)Nr Frrz 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+)$)rrrÚnextÚ startswithrrÚlistÚmaprrÚrangeÚappendÚstatesÚgroupÚevalÚ enumerateÚordÚdfasÚlabelsÚstartÚ StopIteration)!r rrrrrZallarcsr+rÚnÚmÚkZarcsÚ_ÚiÚjÚsÚtÚstater0ZndfasrrÚxÚyÚzÚfirstZ rawbitsetÚcZbyter1Znlabelsr2r r r rTs¾   ÿ          ÿ "          zConverter.parse_graminit_ccCsXi|_i|_t|jƒD]<\}\}}|tjkr@|dur@||j|<q|dur||j|<qdSr)ÚkeywordsÚtokensr.r1rÚNAME)r ZilabelÚ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