3
\u ã @ s0 d dl mZ G dd„ deƒZG dd„ deƒZdS )é )Útokenc @ s e Zd Zdd„ ZdS )Ú
ParseErrorc C s4 t j| d||||f ƒ || _|| _|| _|| _d S )Nz!%s: type=%r, value=%r, context=%r)Ú ExceptionÚ__init__ÚmsgÚtypeÚvalueÚcontext)Úselfr r r r © r ú+/usr/lib64/python3.6/lib2to3/pgen2/parse.pyr s zParseError.__init__N)Ú__name__Ú
__module__Ú__qualname__r r r r r r s r c @ sH e Zd Zddd„Zddd„Zdd„ Zdd „ Zd
d„ Zdd
„ Zdd„ Z dS )ÚParserNc C s || _ |pdd„ | _d S )Nc S s |S )Nr )ÚgrammarÚnoder r r ÚW s z!Parser.__init__..)r Úconvert)r
r r r r r r 9 s zParser.__init__c C sH |d kr| j j}|d d g f}| j j| d|f}|g| _d | _tƒ | _d S )Né )r ÚstartÚdfasÚstackÚrootnodeÚsetÚ
used_names)r
r ÚnewnodeZ
stackentryr r r ÚsetupY s
zParser.setupc C s: | j |||ƒ}�x$| jd \}}}|\}} || }
� xü|
D ]¸\}}| jj| \}
}||kr´| j||||ƒ |}x@|| d|fgkr®| jƒ | js”dS | jd \}}}|\}} qpW dS |
dkr:| jj|
}|\}}||kr:| j|
| jj|
||ƒ P q:W d|f|
k�r$| jƒ | j�s2td|||ƒ‚qtd|||ƒ‚qW d S )
Nr r TFé ztoo much inputz bad inputéÿÿÿÿr ) Úclassifyr r ZlabelsÚshiftÚpopr Úpushr )r
r r r ÚilabelÚdfaÚstater ZstatesÚfirstZarcsÚiÚnewstateÚtÚvZitsdfaZ itsstatesZitsfirstr r r Úaddtokenq s: zParser.addtokenc C sX |t jkr0| jj|ƒ | jjj|ƒ}|d k r0|S | jjj|ƒ}|d krTtd|||ƒ‚|S )Nz bad token) r ÚNAMEr Úaddr ÚkeywordsÚgetÚtokensr )r
r r r r$ r r r r ¡ s
zParser.classifyc C sT | j d \}}}|||d f}| j| j|ƒ}|d k r@|d j|ƒ |||f| j d<