Spade
Mini Shell
| Directory:~$ /proc/self/root/lib64/python3.6/lib2to3/pgen2/__pycache__/ |
| [Home] [System Details] [Kill Me] |
3
\u�@s0ddlmZGdd�de�ZGdd�de�ZdS)�)�tokenc@seZdZdd�ZdS)�
ParseErrorcCs4tj|d||||f�||_||_||_||_dS)Nz!%s:
type=%r, value=%r,
context=%r)� Exception�__init__�msg�type�value�context)�selfrrrr �r�+/usr/lib64/python3.6/lib2to3/pgen2/parse.pyrszParseError.__init__N)�__name__�
__module__�__qualname__rrrrrrsrc@sHeZdZddd�Zddd�Zdd�Zdd �Zd
d�Zdd
�Zdd�Z dS)�ParserNcCs||_|pdd�|_dS)NcSs|S)Nr)�grammar�noderrr�<lambda>Wsz!Parser.__init__.<locals>.<lambda>)r�convert)r
rrrrrr9szParser.__init__cCsH|dkr|jj}|ddgf}|jj|d|f}|g|_d|_t�|_dS)N�)r�start�dfas�stack�rootnode�set�
used_names)r
r�newnodeZ
stackentryrrr�setupYs
zParser.setupcCs:|j|||�}�x$|jd\}}}|\}} ||}
�x�|
D]�\}}|jj|\}
}||kr�|j||||�|}x@||d|fgkr�|j�|js�dS|jd \}}}|\}} qpWdS|
dkr:|jj|
}|\}}||kr:|j|
|jj|
||�Pq:Wd|f|
k�r$|j�|j�s2td|||��qtd|||��qWdS)
NrrTF�ztoo much inputz bad
input���r) �classifyrrZlabels�shift�popr�pushr)r
rrr �ilabel�dfa�staterZstates�firstZarcs�i�newstate�t�vZitsdfaZ itsstatesZitsfirstrrr�addtokenqs:zParser.addtokencCsX|tjkr0|jj|�|jjj|�}|dk r0|S|jjj|�}|dkrTtd|||��|S)Nz bad
token) r�NAMEr�addr�keywords�get�tokensr)r
rrr r$rrrr �s
zParser.classifyc CsT|jd\}}}|||df}|j|j|�}|dk r@|dj|�|||f|jd<dS)Nrrrr)rrr�append) r
rrr)r r%r&rrrrrr!�szParser.shiftc CsB|jd\}}}|d|gf}|||f|jd<|jj|d|f�dS)Nrrrr)rr2) r
rZnewdfar)r r%r&rrrrrr#�szParser.pushcCs`|jj�\}}}|j|j|�}|dk r\|jrL|jd\}}}|dj|�n||_|j|j_dS)Nrrr)rr"rrr2rr)r
ZpopdfaZpopstateZpopnoderr%r&rrrrr"�sz
Parser.pop)N)N)
r
rrrrr,r r!r#r"rrrrrs
0 rN)�rrr�objectrrrrr�<module>s