D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
lib
/
python3.8
/
lib2to3
/
pgen2
/
__pycache__
/
Filename :
pgen.cpython-38.pyc
back
Copy
U �����A�`�5����������������������@���sd���d�dl�mZmZmZ�G�dd��dej�ZG�dd��de�ZG�dd��de�ZG�dd ��d e�Z ddd�Z d S�)����)�grammar�token�tokenizec�������������������@���s���e�Zd�ZdS�)�PgenGrammarN)�__name__� __module__�__qualname__��r ���r ����(/usr/lib/python3.8/lib2to3/pgen2/pgen.pyr������s���r���c�������������������@���s����e�Zd�Zd&dd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zd'd d!�Zd"d#��Zd$d%��ZdS�)(�ParserGeneratorNc�����������������C���sl���d�}|d�krt�|�}|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���Zclose_streamr ���r ���r ����__init__���s����zParserGenerator.__init__c�������������� ���C���s��t���}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_grammar���s.���� zParserGenerator.make_grammarc�����������������C���s4���|�j�|�}i�}t|�D�]}|��||�}d||<�q|S��Nr���)r���r%���r)���)r���r/���r1���Zrawfirstr���r5����ilabelr ���r ���r ���r-���4���s���� zParserGenerator.make_firstc�����������������C���sb��t�|j�}|d����r�||jkrZ||jkr4|j|�S�|j�|j|�d�f��||j|<�|S�nbtt|d��}t|t �sxt |��|tjks�t |��||jkr�|j|�S�|j�|d�f��||j|<�|S�n�|d�dks�t |��t |�}|d�����r ||jk��r�|j|�S�|j�tj|f��||j|<�|S�n>tj|�}||jk�r@|j|�S�|j�|d�f��||j|<�|S�d�S�)Nr���)�"�')r#����labels�isalphar$���Zsymbol2labelr(����getattrr���� isinstance�int�AssertionError�tok_name�tokens�eval�keywords�NAMEr���Zopmap)r���r/���r5���r9���Zitoken�valuer ���r ���r ���r)���=���s<���� zParserGenerator.make_labelc�����������������C���s8���t�|�j����}|����|D�]}||�jkr|��|��qd�S�r���)r���r���r���r ���r���� calcfirst)r���r0���r1���r ���r ���r ���r���k���s ���� zParserGenerator.addfirstsetsc�������������� ���C���s����|�j�|�}d�|�j|<�|d�}i�}i�}|j���D�]x\}}||�j�kr�||�jkrj|�j|�}|d�kr~td|���n|��|��|�j|�}|�|��|||<�q.d||<�|di||<�q.i�} |���D�]:\}} | D�],}|| kr�td|||| |�f���|| |<�q�q�||�j|<�d�S�)Nr���zrecursion 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���ZtotalsetZoverlapcheckr5���r6����fsetZinverseZitsfirstZsymbolr ���r ���r ���rH���s���s4���� �zParserGenerator.calcfirstc����������� ������C���s����i�}d�}|�j�tjkr�|�j�tjkr*|�����q|��tj�}|��tjd��|����\}}|��tj��|�� ||�}t |�}|��|��t |�}|||<�|d�kr|}q||fS�)N�:)�typer���� ENDMARKER�NEWLINEr����expectrF����OP� parse_rhs�make_dfar#����simplify_dfa) r���r���r���r1����a�zr3���ZoldlenZnewlenr ���r ���r ���r�������s"���� zParserGenerator.parsec�������������� ������s����t�|t�st�t�|t�st���fdd�}��fdd���t||�|�g}|D�]�}i�}|jD�].}|jD�]"\}} |d�k r`��| |�|i����q`qVt|����D�]@\}} |D�]}|j| kr��q�q�t| |�}|� |��|� ||��q�qH|S�)Nc��������������������s���i�}��|�|��|S�r���r ���)r4����base�� addclosurer ���r ����closure����s���� z)ParserGenerator.make_dfa.<locals>.closurec��������������������sH���t�|�t�st�|�|krd�S�d||�<�|�jD�]\}}|d�kr(��||��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&���Znfastater5���r6���r]����str ���rX���r ���rS�������s&���� zParserGenerator.make_dfac����������� ������C���s����t�d|��|g}t|�D�]|\}}t�d|||kr2dp4d��|jD�]T\}}||krZ|�|�} nt|�} |�|��|d�kr�t�d| ���q>t�d|| f���q>qd�S�)NzDump of NFA for� State�(final)��z -> %d� %s -> %d)�print� enumerater&���r*���r#���r(���) r���r1���r.���r`���Ztodor2���r4���r5���r6����jr ���r ���r ����dump_nfa����s���� zParserGenerator.dump_nfac�����������������C���sd���t�d|��t|�D�]L\}}t�d||jr*dp,d��t|j����D�]\}}t�d||�|�f���q>qd�S�)NzDump 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 ���� zParserGenerator.dump_dfac�����������������C���sp���d}|rld}t�|�D�]T\}}t|d�t|��D�]8}||�}||kr.||=�|D�]}|�||��qLd}�qq.qqd�S�)NTFr���)rg����ranger#���� unifystate)r���r3���Zchangesr2���Zstate_irh���Zstate_jr4���r ���r ���r ���rT�������s����zParserGenerator.simplify_dfac�����������������C���s~���|�����\}}|�jdkr||fS�t��}t��}|�|��|�|��|�jdkrr|�����|�����\}}|�|��|�|��q>||fS�d�S�)N�|)� parse_altrG���r[���r_���r���)r���rU���rV���ZaaZzzr ���r ���r ���rR�������s���� zParserGenerator.parse_rhsc�����������������C���sL���|�����\}}|�jdks(|�jtjtjfkrD|�����\}}|�|��|}q||fS�)N)�(�[)� parse_itemrG���rM���r���rF����STRINGr_���)r���rU����br/����dr ���r ���r ���rn��� ��s���� � zParserGenerator.parse_altc�����������������C���s����|�j�dkr>|�����|����\}}|��tjd��|�|��||fS�|����\}}|�j�}|dkr`||fS�|�����|�|��|dkr�||fS�||fS�d�S�)Nrp����])�+�*rv���)rG���r���rR���rP���r���rQ���r_���� parse_atom)r���rU���rV���rG���r ���r ���r ���rq�����s���� zParserGenerator.parse_itemc�����������������C���s����|�j�dkr4|�����|����\}}|��tjd��||fS�|�jtjtjfkrpt ��}t ��}|� ||�j���|�����||fS�|��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���� ��zParserGenerator.parse_atomc�����������������C���sD���|�j�|ks|d�k r2|�j|kr2|��d|||�j�|�j��|�j}|�����|S�)Nzexpected %s/%s, got %s/%s)rM���rG���rz���r���)r���rM���rG���r ���r ���r ���rP���9��s��������zParserGenerator.expectc�����������������C���sF���t�|�j�}|d�tjtjfkr*t�|�j�}q |\|�_|�_|�_|�_|�_ d�S�)Nr���) r6���r���r����COMMENT�NLrM���rG���Zbegin�end�line)r����tupr ���r ���r ���r���A��s���� zParserGenerator.gettokenc�������������� ���G���s^���|r8z||�}W�n&���d��|gttt|����}Y�nX�t||�j|�jd�|�jd�|�jf��d�S�)N� r���r���)�joinr����map�str�SyntaxErrorr���r}���r~���)r����msg�argsr ���r ���r ���rz���H��s���� ��zParserGenerator.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�Zd�Zdd��Zddd�ZdS�)r[���c�����������������C���s ���g�|�_�d�S�r���)r&���)r���r ���r ���r ���r���S��s����zNFAState.__init__Nc�����������������C���s8���|d�kst�|t�st�t�|t�s$t�|�j�||f��d�S�r���)r?���r����rA���r[���r&���r(����r���r6���r5���r ���r ���r ���r_���V��s����zNFAState.addarc)N)r���r���r���r���r_���r ���r ���r ���r ���r[���Q��s���r[���c�������������������@���s0���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd Zd S�) r\���c�����������������C���sL���t�|t�st�t�tt|��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���� zDFAState.__init__c�����������������C���s8���t�|t�st�||�jkst�t�|t�s*t�||�j|<�d�S�r���)r?���r����rA���r&���r\���r����r ���r ���r ���r_���e��s����zDFAState.addarcc�����������������C���s*���|�j����D�]\}}||kr ||�j�|<�q d�S�r���)r&���r'���)r����old�newr5���r6���r ���r ���r ���rl���k��s����zDFAState.unifystatec�����������������C���sd���t�|t�st�|�j|jkrdS�t|�j�t|j�kr6dS�|�j���D�]\}}||j�|�k r@�dS�q@dS�)NFT)r?���r\���rA���r+���r#���r&���r'����get)r����otherr5���r6���r ���r ���r ����__eq__p��s����zDFAState.__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���ZGrammarr����objectr���r[���r\���r����r ���r ���r ���r ����<module>���s�����I %