ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    e5d5                     @   sd   d dl mZmZmZ G dd dejZG dd deZG dd deZG dd	 d	eZ	dddZ
dS )   )grammartokentokenizec                   @   s   e Zd ZdS )PgenGrammarN)__name__
__module____qualname__ r	   r	   */usr/lib64/python3.8/lib2to3/pgen2/pgen.pyr      s   r   c                   @   s   e Zd Zd&ddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd'd d!Zd"d# Zd$d% ZdS )(ParserGeneratorNc                 C   sl   d }|d krt |}|j}|| _|| _t|j| _|   | 	 \| _
| _|d k	rZ|  i | _|   d S N)openclosefilenamestreamr   generate_tokensreadline	generatorgettokenparsedfasstartsymbolfirstaddfirstsets)selfr   r   Zclose_streamr	   r	   r
   __init__   s    zParserGenerator.__init__c              	   C   s  t  }t| j }|  || j |d| j |D ]&}dt|j	 }||j	|< ||j
|< q:|D ]}| j| }g }|D ]`}g }t|j D ]$\}	}
|| ||	||
f q|jr|d||f || q||j| || ||f|j|j	| < qf|j	| j |_|S )N       )r   listr   keyssortremover   insertlensymbol2numberZnumber2symbolsortedarcsitemsappend
make_labelindexisfinalstates
make_firststart)r   cnamesnameidfar,   stater&   labelnextr	   r	   r
   make_grammar   s.    

zParserGenerator.make_grammarc                 C   s4   | j | }i }t|D ]}| ||}d||< q|S Nr   )r   r%   r)   )r   r/   r1   Zrawfirstr   r5   ilabelr	   r	   r
   r-   4   s    

zParserGenerator.make_firstc                 C   sb  t |j}|d  r||jkrZ||jkr4|j| S |j|j| d f ||j|< |S nbtt|d }t|t	sxt
||tjkst
|||jkr|j| S |j|d f ||j|< |S n|d dkst
|t|}|d  r ||jk r|j| S |jtj|f ||j|< |S n>tj| }||jkr@|j| S |j|d f ||j|< |S d S )Nr   )"')r#   labelsisalphar$   Zsymbol2labelr(   getattrr   
isinstanceintAssertionErrortok_nametokensevalkeywordsNAMEr   Zopmap)r   r/   r5   r9   Zitokenvaluer	   r	   r
   r)   =   s<    












zParserGenerator.make_labelc                 C   s8   t | j }|  |D ]}|| jkr| | qd S r   )r   r   r   r    r   	calcfirst)r   r0   r1   r	   r	   r
   r   k   s
    
zParserGenerator.addfirstsetsc              	   C   s   | j | }d | j|< |d }i }i }|j D ]x\}}|| j kr|| jkrj| j| }|d kr~td| n| | | j| }|| |||< q.d||< |di||< q.i }	| D ]:\}}
|
D ],}||	krtd||||	| f ||	|< qq|| j|< d S )Nr   zrecursion for rule %rr   zArule %s is ambiguous; %s is in the first sets of %s as well as %s)r   r   r&   r'   
ValueErrorrH   update)r   r1   r3   r4   ZtotalsetZoverlapcheckr5   r6   fsetZinverseZitsfirstZsymbolr	   r	   r
   rH   s   s4    








zParserGenerator.calcfirstc           	      C   s   i }d }| j tjkr| j tjkr*|   q| tj}| tjd |  \}}| tj | 	||}t
|}| | t
|}|||< |d kr|}q||fS )N:)typer   	ENDMARKERNEWLINEr   expectrF   OP	parse_rhsmake_dfar#   simplify_dfa)	r   r   r   r1   azr3   ZoldlenZnewlenr	   r	   r
   r      s"    

zParserGenerator.parsec              	      s   t |tstt |tst fdd} fdd t|||g}|D ]}i }|jD ].}|jD ]"\}}	|d k	r` |	||i  q`qVt| D ]@\}}
|D ]}|j|
kr qqt|
|}|	| |
|| qqH|S )Nc                    s   i } | | |S r   r	   )r4   base
addclosurer	   r
   closure   s    
z)ParserGenerator.make_dfa.<locals>.closurec                    sH   t | tst| |krd S d|| < | jD ]\}}|d kr( || q(d S r8   )r?   NFAStaterA   r&   )r4   rW   r5   r6   rX   r	   r
   rY      s    z,ParserGenerator.make_dfa.<locals>.addclosure)r?   r[   rA   DFAStatenfasetr&   
setdefaultr%   r'   r(   addarc)r   r.   finishrZ   r,   r4   r&   Znfastater5   r6   r]   str	   rX   r
   rS      s&    



zParserGenerator.make_dfac           
      C   s   t d| |g}t|D ]|\}}t d|||kr2dp4d |jD ]T\}}||krZ||}	nt|}	|| |d krt d|	  q>t d||	f  q>qd S )NzDump of NFA for  State(final) z	    -> %d    %s -> %d)print	enumerater&   r*   r#   r(   )
r   r1   r.   r`   Ztodor2   r4   r5   r6   jr	   r	   r
   dump_nfa   s    

zParserGenerator.dump_nfac                 C   sd   t d| t|D ]L\}}t d||jr*dp,d t|j D ]\}}t d|||f  q>qd S )NzDump of DFA forrb   rc   rd   re   )rf   rg   r+   r%   r&   r'   r*   )r   r1   r3   r2   r4   r5   r6   r	   r	   r
   dump_dfa   s
    
zParserGenerator.dump_dfac                 C   sp   d}|rld}t |D ]T\}}t|d t|D ]8}|| }||kr.||= |D ]}||| qLd} qq.qqd S )NTFr   )rg   ranger#   
unifystate)r   r3   Zchangesr2   Zstate_irh   Zstate_jr4   r	   r	   r
   rT      s    zParserGenerator.simplify_dfac                 C   s~   |   \}}| jdkr||fS t }t }|| || | jdkrr|   |   \}}|| || q>||fS d S )N|)	parse_altrG   r[   r_   r   )r   rU   rV   ZaaZzzr	   r	   r
   rR      s    




zParserGenerator.parse_rhsc                 C   sL   |   \}}| jdks(| jtjtjfkrD|   \}}|| |}q||fS )N)([)
parse_itemrG   rM   r   rF   STRINGr_   )r   rU   br/   dr	   r	   r
   rn   
  s    

zParserGenerator.parse_altc                 C   s   | j dkr>|   |  \}}| tjd || ||fS |  \}}| j }|dkr`||fS |   || |dkr||fS ||fS d S )Nrp   ])+*rv   )rG   r   rR   rP   r   rQ   r_   
parse_atom)r   rU   rV   rG   r	   r	   r
   rq     s    


zParserGenerator.parse_itemc                 C   s   | j dkr4|   |  \}}| tjd ||fS | jtjtjfkrpt	 }t	 }|
|| j  |   ||fS | d| j| j  d S )Nro   )z+expected (...) or NAME or STRING, got %s/%s)rG   r   rR   rP   r   rQ   rM   rF   rr   r[   r_   raise_error)r   rU   rV   r	   r	   r
   rx   (  s    
 zParserGenerator.parse_atomc                 C   sD   | j |ks|d k	r2| j|kr2| d||| j | j | j}|   |S )Nzexpected %s/%s, got %s/%s)rM   rG   rz   r   )r   rM   rG   r	   r	   r
   rP   9  s       zParserGenerator.expectc                 C   sF   t | j}|d tjtjfkr*t | j}q
|\| _| _| _| _| _	d S )Nr   )
r6   r   r   COMMENTNLrM   rG   Zbeginendline)r   tupr	   r	   r
   r   A  s    
zParserGenerator.gettokenc              
   G   s^   |r8z|| }W n&   d |gttt| }Y nX t|| j| jd | jd | jfd S )N r   r   )joinr   mapstrSyntaxErrorr   r}   r~   )r   msgargsr	   r	   r
   rz   H  s      zParserGenerator.raise_error)N)N)r   r   r   r   r7   r-   r)   r   rH   r   rS   ri   rj   rT   rR   rn   rq   rx   rP   r   rz   r	   r	   r	   r
   r   
   s$   
	.$

r   c                   @   s   e Zd Zdd ZdddZdS )r[   c                 C   s
   g | _ d S r   )r&   )r   r	   r	   r
   r   S  s    zNFAState.__init__Nc                 C   s8   |d kst |tstt |ts$t| j||f d S r   )r?   r   rA   r[   r&   r(   r   r6   r5   r	   r	   r
   r_   V  s    zNFAState.addarc)N)r   r   r   r   r_   r	   r	   r	   r
   r[   Q  s   r[   c                   @   s0   e Zd Zdd Zdd Zdd Zdd Zd	Zd	S )
r\   c                 C   sL   t |tstt tt|ts$tt |ts2t|| _||k| _i | _d S r   )	r?   dictrA   r6   iterr[   r]   r+   r&   )r   r]   finalr	   r	   r
   r   ]  s    
zDFAState.__init__c                 C   s8   t |tst|| jkstt |ts*t|| j|< d S r   )r?   r   rA   r&   r\   r   r	   r	   r
   r_   e  s    zDFAState.addarcc                 C   s*   | j  D ]\}}||kr
|| j |< q
d S r   )r&   r'   )r   oldnewr5   r6   r	   r	   r
   rl   k  s    zDFAState.unifystatec                 C   sd   t |tst| j|jkrdS t| jt|jkr6dS | j D ]\}}||j|k	r@ dS q@dS )NFT)r?   r\   rA   r+   r#   r&   r'   get)r   otherr5   r6   r	   r	   r
   __eq__p  s    zDFAState.__eq__N)r   r   r   r   r_   rl   r   __hash__r	   r	   r	   r
   r\   [  s
   r\   Grammar.txtc                 C   s   t | }| S r   )r   r7   )r   pr	   r	   r
   generate_grammar  s    r   N)r   )rd   r   r   r   ZGrammarr   objectr   r[   r\   r   r	   r	   r	   r
   <module>   s     I
%