
    z%i%                     H    	 d dl Z d dlmZmZ  G d dej                        Zy)    N)grammartokenc                   &    e Zd Z	 d Zd Zd Zd Zy)	Converterc                 j    	 | j                  |       | j                  |       | j                          y N)parse_graminit_hparse_graminit_c
finish_off)self
graminit_h
graminit_cs      F/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/lib2to3/pgen2/conv.pyrunzConverter.run/   s+    Jj)j)    c           	         	 	 t        |      }i | _        i | _        d}|D ]  }|dz  }t        j                  d|      }|s2|j                         r"t        |d|d|j                                R|j                         \  }}t        |      }|| j                  |<   || j                  |<    y	# t        $ r}t        d|d|       Y d }~yd }~ww xY w)
NCan't open : Fr      z^#define\s+(\w+)\s+(\d+)$(z): can't parse T)
openOSErrorprintsymbol2numbernumber2symbolrematchstripgroupsint)	r   filenameferrlinenolinemosymbolnumbers	            r   r	   zConverter.parse_graminit_h5   s    		XA   	4DaKF6=B$**,(F26**,@ A "$V .4""6*-3""6*	4 '  	378	s   B1 1	C:CCc                 |   	 	 t        |      }d}|dz   t        |      }}|dz   t        |      }}|dz   t        |      }}i }g }|j	                  d      r|j	                  d      rt        j                  d|      }t        t        t        |j                                     \  }	}
}g }t        |      D ]e  }|dz   t        |      }}t        j                  d|      }t        t        t        |j                                     \  }}|j                  ||f       g |dz   t        |      }}|||	|
f<   |dz   t        |      }}|j	                  d      rt        j                  d	|      }t        t        t        |j                                     \  }}g }t        |      D ]k  }|dz   t        |      }}t        j                  d
|      }t        t        t        |j                                     \  }}	}
||	|
f   }|j                  |       m |j                  |       |dz   t        |      }}|dz   t        |      }}|j	                  d      r|| _        i }t        j                  d|      }t        |j                  d            }t        |      D ]  }|dz   t        |      }}t        j                  d|      }|j                  d      }t        t        t        |j                  dddd                  \  }}}}||   }|dz   t        |      }}t        j                  d|      }i }t        |j                  d            }t!        |      D ]4  \  }}t#        |      }t        d      D ]  }|d|z  z  sd||dz  |z   <    6 ||f||<    |dz   t        |      }}|| _        g }|dz   t        |      }}t        j                  d|      }t        |j                  d            }t        |      D ]l  }|dz   t        |      }}t        j                  d|      }|j                         \  }}t        |      }|dk(  rd }nt        |      }|j                  ||f       n |dz   t        |      }}|| _        |dz   t        |      }}|dz   t        |      }}t        j                  d|      }t        |j                  d            }|dz   t        |      }}|dz   t        |      }}t        j                  d|      }t        |j                  d            }|dz   t        |      }}t        j                  d|      }t        |j                  d            } | | _        |dz   t        |      }}	 |dz   t        |      }}y # t        $ r}t        d|d|       Y d }~yd }~ww xY w# t*        $ r Y y w xY w)Nr   r   Fr   r   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+)},$zstatic 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   r   r   next
startswithr   r   listmapr    r   rangeappendstatesgroupeval	enumerateorddfaslabelsstartStopIteration)!r   r!   r"   r#   r$   r%   allarcsr6   r&   nmkarcs_ijststater;   ndfasr'   r(   xyzfirst	rawbitsetcbyter<   nlabelsr=   s!                                    r   r
   zConverter.parse_graminit_cT   ss   	6	XA
  axaaxa axaoom,//-0XXJ"$ s3		451aq (A#)!8T!WDF"8$?BC 56DAqKKA'(  &axa"&A%axa //-0  DdKBC-.DAqE1X #%axaXX?Fs3		451aq!t}T"# MM% !!8T!WDF!!8T!WDFC oom,D  XX6=BHHQK u 	*A!!8T!WDFM B XXa[F"3sBHHQ1a,@#ABOFAq! 1IE!!8T!WDF4d;BERXXa[)I!), +11vq +Aq!t})*acAg++
 "5>DL-	*. axa	 axaXX:DAbhhqk"w 
	"A!!8T!WDF4d;B99;DAqAACxGMM1a&!
	" axa axaaxaXXmT*BHHQK axaaxaXX-t4bhhqk"axaXXlD)BHHQK 
axa	%!!8T!WDFC  	378	D  		s)   V 7V/ 	V,V''V,/	V;:V;c                     	 i | _         i | _        t        | j                        D ]?  \  }\  }}|t        j
                  k(  r||| j                   |<   .|1|| j                  |<   A y r   )keywordstokensr9   r<   r   NAME)r   ilabeltypevalues       r   r   zConverter.finish_off   sf    ?%.t{{%; 	+!FMT5uzz!e&7'-e$$*D!		+r   N)__name__
__module____qualname__r   r	   r
   r    r   r   r   r   $   s    >c%J+r   r   )r   pgen2r   r   Grammarr   r]   r   r   <module>r`      s&   4 
 !]+ ]+r   