JFIF$        dd7 

Viewing File: /usr/lib64/python3.9/lib2to3/pgen2/__pycache__/pgen.cpython-39.pyc

a

�i�5�@sdddlmZmZmZGdd�dej�ZGdd�de�ZGdd�de�ZGdd	�d	e�Z	ddd�Z
d
S)�)�grammar�token�tokenizec@seZdZdS)�PgenGrammarN)�__name__�
__module__�__qualname__�r	r	�*/usr/lib64/python3.9/lib2to3/pgen2/pgen.pyrsrc@s�eZdZd&dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd'd d!�Zd"d#�Zd$d%�ZdS)(�ParserGeneratorNcCsld}|durt|�}|j}||_||_t�|j�|_|��|�	�\|_
|_|durZ|�i|_|�
�dS�N)�open�close�filename�streamr�generate_tokens�readline�	generator�gettoken�parse�dfas�startsymbol�first�addfirstsets)�selfrrZclose_streamr	r	r
�__init__szParserGenerator.__init__c	Cst�}t|j���}|��|�|j�|�d|j�|D]&}dt|j	�}||j	|<||j
|<q:|D]�}|j|}g}|D]`}g}t|j�
��D]$\}	}
|�|�||	�|�|
�f�q�|jr�|�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_grammars.

zParserGenerator.make_grammarcCs4|j|}i}t|�D]}|�||�}d||<q|S�Nr)rr%r))rr/r1Zrawfirstrr5�ilabelr	r	r
r-4s

zParserGenerator.make_firstcCsbt|j�}|d��r�||jvrZ||jvr4|j|S|j�|j|df�||j|<|Snbtt|d�}t|t	�sxJ|��|tj
vs�J|��||jvr�|j|S|j�|df�||j|<|Sn�|ddvs�J|��t|�}|d���r ||j
v�r�|j
|S|j�tj|f�||j
|<|Sn>tj|}||jv�r@|j|S|j�|df�||j|<|SdS)Nr)�"�')r#�labels�isalphar$Zsymbol2labelr(�getattrr�
isinstance�int�tok_name�tokens�eval�keywords�NAMErZopmap)rr/r5r9Zitoken�valuer	r	r
r)=s<












zParserGenerator.make_labelcCs8t|j���}|��|D]}||jvr|�|�qdSr)rrrr r�	calcfirst)rr0r1r	r	r
rks

zParserGenerator.addfirstsetsc	Cs�|j|}d|j|<|d}i}i}|j��D]x\}}||jvr�||jvrj|j|}|dur~td|��n|�|�|j|}|�|�|||<q.d||<|di||<q.i}	|��D]:\}}
|
D],}||	vr�td||||	|f��||	|<q�q�||j|<dS)Nrzrecursion for rule %rrzArule %s is ambiguous; %s is in the first sets of %s as well as %s)rrr&r'�
ValueErrorrG�update)rr1r3r4ZtotalsetZoverlapcheckr5r6�fsetZinverseZitsfirst�symbolr	r	r
rGss4








�zParserGenerator.calcfirstc	Cs�i}d}|jtjkr�|jtjkr*|��q|�tj�}|�tjd�|��\}}|�tj�|�	||�}t
|�}|�|�t
|�}|||<|dur|}q||fS)N�:)�typer�	ENDMARKER�NEWLINEr�expectrE�OP�	parse_rhs�make_dfar#�simplify_dfa)	rrrr1�a�zr3ZoldlenZnewlenr	r	r
r�s"

zParserGenerator.parsec	s�t|t�sJ�t|t�sJ��fdd�}�fdd��t||�|�g}|D]�}i}|jD].}|jD]"\}}	|dur`�|	|�|i��q`qVt|���D]@\}}
|D]}|j|
kr�q�q�t|
|�}|�|�|�	||�q�qH|S)Ncsi}�||�|Srr	)r4�base��
addclosurer	r
�closure�s
z)ParserGenerator.make_dfa.<locals>.closurecsHt|t�sJ�||vrdSd||<|jD]\}}|dur(�||�q(dSr8)r?�NFAStater&)r4rWr5r6rXr	r
rY�sz,ParserGenerator.make_dfa.<locals>.addclosure)
r?r[�DFAState�nfasetr&�
setdefaultr%r'r(�addarc)rr.�finishrZr,r4r&Znfastater5r6r]�str	rXr
rS�s&



zParserGenerator.make_dfac
Cs�td|�|g}t|�D]|\}}td|||ur2dp4d�|jD]T\}}||vrZ|�|�}	nt|�}	|�|�|dur�td|	�q>td||	f�q>qdS)NzDump of NFA for�  State�(final)�z	    -> %d�    %s -> %d)�print�	enumerater&r*r#r()
rr1r.r`Ztodor2r4r5r6�jr	r	r
�dump_nfa�s

zParserGenerator.dump_nfacCsdtd|�t|�D]L\}}td||jr*dp,d�t|j���D]\}}td||�|�f�q>qdS)NzDump of DFA forrbrcrdre)rfrgr+r%r&r'r*)rr1r3r2r4r5r6r	r	r
�dump_dfa�s

zParserGenerator.dump_dfacCspd}|rld}t|�D]T\}}t|dt|��D]8}||}||kr.||=|D]}|�||�qLd}qq.qqdS)NTFr)rg�ranger#�
unifystate)rr3Zchangesr2Zstate_irhZstate_jr4r	r	r
rT�szParserGenerator.simplify_dfacCs~|��\}}|jdkr||fSt�}t�}|�|�|�|�|jdkrr|��|��\}}|�|�|�|�q>||fSdS)N�|)�	parse_altrFr[r_r)rrUrVZaa�zzr	r	r
rR�s




zParserGenerator.parse_rhscCsL|��\}}|jdvs(|jtjtjfvrD|��\}}|�|�|}q||fS)N)�(�[)�
parse_itemrFrMrrE�STRINGr_)rrU�br/�dr	r	r
rn
s
�
zParserGenerator.parse_altcCs�|jdkr>|��|��\}}|�tjd�|�|�||fS|��\}}|j}|dvr`||fS|��|�|�|dkr�||fS||fSdS)Nrq�])�+�*rw)rFrrRrPrrQr_�
parse_atom)rrUrVrFr	r	r
rrs


zParserGenerator.parse_itemcCs�|jdkr4|��|��\}}|�tjd�||fS|jtjtjfvrpt	�}t	�}|�
||j�|��||fS|�d|j|j�dS)Nrp�)z+expected (...) or NAME or STRING, got %s/%s)rFrrRrPrrQrMrErsr[r_�raise_error)rrUrVr	r	r
ry(s
�zParserGenerator.parse_atomcCsD|j|ks|dur2|j|kr2|�d|||j|j�|j}|��|S)Nzexpected %s/%s, got %s/%s)rMrFr{r)rrMrFr	r	r
rP9s�zParserGenerator.expectcCsFt|j�}|dtjtjfvr*t|j�}q
|\|_|_|_|_|_	dS)Nr)
r6rr�COMMENT�NLrMrFZbegin�end�line)r�tupr	r	r
rAs
zParserGenerator.gettokenc
Gs^|r8z||}Wn&d�|gttt|���}Yn0t||j|jd|jd|jf��dS)N� rr)�joinr�map�str�SyntaxErrorrr~r)r�msg�argsr	r	r
r{Hs �zParserGenerator.raise_error)N)N)rrrrr7r-r)rrGrrSrirjrTrRrnrrryrPrr{r	r	r	r
r
s$
	.$

rc@seZdZdd�Zddd�ZdS)r[cCs
g|_dSr)r&)rr	r	r
rSszNFAState.__init__NcCs8|dust|t�sJ�t|t�s$J�|j�||f�dSr)r?r�r[r&r(�rr6r5r	r	r
r_VszNFAState.addarc)N)rrrrr_r	r	r	r
r[Qsr[c@s0eZdZdd�Zdd�Zdd�Zdd�Zd	Zd	S)
r\cCsLt|t�sJ�ttt|��t�s$J�t|t�s2J�||_||v|_i|_dSr)r?�dictr6�iterr[r]r+r&)rr]�finalr	r	r
r]s
zDFAState.__init__cCs8t|t�sJ�||jvsJ�t|t�s*J�||j|<dSr)r?r�r&r\r�r	r	r
r_eszDFAState.addarccCs*|j��D]\}}||ur
||j|<q
dSr)r&r')r�old�newr5r6r	r	r
rlkszDFAState.unifystatecCsdt|t�sJ�|j|jkrdSt|j�t|j�kr6dS|j��D]\}}||j�|�ur@dSq@dS)NFT)r?r\r+r#r&r'�get)r�otherr5r6r	r	r
�__eq__pszDFAState.__eq__N)rrrrr_rlr��__hash__r	r	r	r
r\[s
r\�Grammar.txtcCst|�}|��Sr)rr7)r�pr	r	r
�generate_grammar�sr�N)r�)rdrrrZGrammarr�objectrr[r\r�r	r	r	r
�<module>sI
%
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg