Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3.10/lib2to3/pgen2/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3.10/lib2to3/pgen2/__pycache__/pgen.cpython-310.pyc
o

��bc6�@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/lib/python3.10/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)'�ParserGeneratorNcCspd}|durt|dd�}|j}||_||_t�|j�|_|��|�	�\|_
|_|dur/|�i|_|�
�dS)Nzutf-8)�encoding)�open�close�filename�streamr�generate_tokens�readline�	generator�gettoken�parse�dfas�startsymbol�first�addfirstsets)�selfrr�close_streamr	r	r
�__init__szParserGenerator.__init__c	Cst�}t|j���}|��|�|j�|�d|j�|D]}dt|j	�}||j	|<||j
|<q|D]P}|j|}g}|D]0}g}t|j�
��D]\}	}
|�|�||	�|�|
�f�qI|jri|�d|�|�f�|�|�q>|j�|�||�||�f|j|j	|<q3|j	|j|_|S)N��)r�listr�keys�sort�remover�insert�len�
symbol2number�
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+)rr1r3�rawfirstrr7�ilabelr	r	r
r/4s

zParserGenerator.make_firstcCsRt|j�}|d��r]||jvr,||jvr|j|S|j�|j|df�||j|<|Stt|d�}t|t	�s;J|��|tj
vsDJ|��||jvrN|j|S|j�|df�||j|<|S|ddvsgJ|��t|�}|d��r�||j
vr{|j
|S|j�tj|f�||j
|<|Stj|}||jvr�|j|S|j�|df�||j|<|S)Nr)�"�')r$�labels�isalphar%�symbol2labelr*�getattrr�
isinstance�int�tok_name�tokens�eval�keywords�NAMEr�opmap)rr1r7r<�itoken�valuer	r	r
r+=s<














zParserGenerator.make_labelcCs8t|j���}|��|D]}||jvr|�|�q
dS�N)rrr r!r�	calcfirst)rr2r3r	r	r
rks

��zParserGenerator.addfirstsetsc	Cs�|j|}d|j|<|d}i}i}|j��D]<\}}||jvrI||jvr5|j|}|dur4td|��n
|�|�|j|}|�|�|||<qd||<|di||<qi}	|��D]\}}
|
D]}||	vrrtd||||	|f��||	|<q`qZ||j|<dS)Nrzrecursion for rule %rrzArule %s is ambiguous; %s is in the first sets of %s as well as %s)rrr(r)�
ValueErrorrN�update)rr3r5r6�totalset�overlapcheckr7r8�fset�inverse�itsfirst�symbolr	r	r
rNss8




�



�
�zParserGenerator.calcfirstc	Cs�i}d}|jtjkrV|jtjkr|��|jtjks|�tj�}|�tjd�|��\}}|�tj�|�	||�}t
|�}|�|�t
|�}|||<|durP|}|jtjks
||fS)N�:)�typer�	ENDMARKER�NEWLINEr�expectrI�OP�	parse_rhs�make_dfar$�simplify_dfa)	rrrr3�a�zr5�oldlen�newlenr	r	r
r�s&�
�zParserGenerator.parsec	s�t|t�sJ�t|t�sJ��fdd�}�fdd��t||�|�g}|D]F}i}|jD]}|jD]\}}	|durA�|	|�|i��q0q+t|���D] \}}
|D]	}|j|
krXnqOt|
|�}|�|�|�	||�qIq$|S)Ncsi}�||�|SrMr	)r6�base��
addclosurer	r
�closure�s
z)ParserGenerator.make_dfa.<locals>.closurecsHt|t�sJ�||vr
dSd||<|jD]
\}}|dur!�||�qdSr:)rC�NFAStater()r6rdr7r8rer	r
rf�s
��z,ParserGenerator.make_dfa.<locals>.addclosure)
rCrh�DFAState�nfasetr(�
setdefaultr'r)r*�addarc)rr0�finishrgr.r6r(�nfastater7r8rj�str	rer
r^�s.
��
�

�zParserGenerator.make_dfac
Cs�td|�|g}t|�D]>\}}td|||urdpd�|jD]*\}}||vr-|�|�}	n	t|�}	|�|�|durAtd|	�qtd||	f�qqdS)NzDump of NFA for�  State�(final)�z	    -> %d�    %s -> %d)�print�	enumerater(r,r$r*)
rr3r0rm�todor4r6r7r8�jr	r	r
�dump_nfa�s

��zParserGenerator.dump_nfacCsdtd|�t|�D]&\}}td||jrdpd�t|j���D]\}}td||�|�f�qq	dS)NzDump of DFA forrprqrrrs)rtrur-r'r(r)r,)rr3r5r4r6r7r8r	r	r
�dump_dfa�s
��zParserGenerator.dump_dfacCsvd}|r9d}t|�D]*\}}t|dt|��D]}||}||kr3||=|D]}|�||�q&d}nqq
|sdSdS)NTFr)ru�ranger$�
unifystate)rr5�changesr4�state_irw�state_jr6r	r	r
r_�s���zParserGenerator.simplify_dfacCs�|��\}}|jdkr||fSt�}t�}|�|�|�|�|jdkr=|��|��\}}|�|�|�|�|jdks$||fS)N�|)�	parse_altrLrhrlr)rr`ra�aa�zzr	r	r
r]�s






�zParserGenerator.parse_rhscCsf|��\}}|jdvs|jtjtjfvr/|��\}}|�|�|}|jdvs|jtjtjfvs||fS)N)�(�[)�
parse_itemrLrXrrI�STRINGrl)rr`�br1�dr	r	r
r�
s


�zParserGenerator.parse_altcCs�|jdkr|��|��\}}|�tjd�|�|�||fS|��\}}|j}|dvr0||fS|��|�|�|dkrA||fS||fS)Nr��])�+�*r�)rLrr]r[rr\rl�
parse_atom)rr`rarLr	r	r
r�s


zParserGenerator.parse_itemcCs�|jdkr|��|��\}}|�tjd�||fS|jtjtjfvr8t	�}t	�}|�
||j�|��||fS|�d|j|j�dS)Nr��)z+expected (...) or NAME or STRING, got %s/%s)rLrr]r[rr\rXrIr�rhrl�raise_error)rr`rar	r	r
r�(s
�zParserGenerator.parse_atomcCsD|j|ks|dur|j|kr|�d|||j|j�|j}|��|S)Nzexpected %s/%s, got %s/%s)rXrLr�r)rrXrLr	r	r
r[9s�zParserGenerator.expectcCsXt|j�}|dtjtjfvrt|j�}|dtjtjfvs|\|_|_|_|_|_	dS)Nr)
r8rr�COMMENT�NLrXrL�begin�end�line)r�tupr	r	r
rAs


�zParserGenerator.gettokenc
GsV|rz||}Wnd�|gttt|���}Yt||j|jd|jd|jf��)N� rr)�joinr�map�str�SyntaxErrorrr�r�)r�msg�argsr	r	r
r�Hs�zParserGenerator.raise_errorrM)rrrrr9r/r+rrNrr^rxryr_r]r�r�r�r[rr�r	r	r	r
r
s&
	.$

rc@seZdZdd�Zddd�ZdS)rhcCs
g|_dSrM)r()rr	r	r
rSs
zNFAState.__init__NcCs8|dust|t�sJ�t|t�sJ�|j�||f�dSrM)rCr�rhr(r*�rr8r7r	r	r
rlVszNFAState.addarcrM)rrrrrlr	r	r	r
rhQsrhc@s0eZdZdd�Zdd�Zdd�Zdd�Zd	Zd	S)
ricCsLt|t�sJ�ttt|��t�sJ�t|t�sJ�||_||v|_i|_dSrM)rC�dictr8�iterrhrjr-r()rrj�finalr	r	r
r]s

zDFAState.__init__cCs8t|t�sJ�||jvsJ�t|t�sJ�||j|<dSrM)rCr�r(rir�r	r	r
rleszDFAState.addarccCs*|j��D]
\}}||ur||j|<qdSrM)r(r))r�old�newr7r8r	r	r
r{ks

��zDFAState.unifystatecCsdt|t�sJ�|j|jkrdSt|j�t|j�krdS|j��D]\}}||j�|�ur/dSq dS)NFT)rCrir-r$r(r)�get)r�otherr7r8r	r	r
�__eq__ps�zDFAState.__eq__N)rrrrrlr{r��__hash__r	r	r	r
ri[sri�Grammar.txtcCst|�}|��SrM)rr9)r�pr	r	r
�generate_grammar�sr�N)r�)rrrrr�Grammarr�objectrrhrir�r	r	r	r
�<module>sI
%

Spamworldpro Mini