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.pyrs zParseError.__init__N)Ú__name__Ú __module__Ú __qualname__rr r r r rsrc@sHeZdZddd„Zddd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dS)ÚParserNcCs||_|pdd„|_dS)NcSs|S)Nr )ÚgrammarÚnoder r r ÚWsz!Parser.__init__..)rÚconvert)r rrr r r r9szParser.__init__cCsH|dkr|jj}|ddgf}|jj|d|f}|g|_d|_tƒ|_dS)Né)rÚstartÚdfasÚstackÚrootnodeÚsetÚ used_names)r rÚnewnodeZ stackentryr r r ÚsetupYs  z Parser.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 itsstatesZitsfirstr r r Úaddtokenqs:   zParser.addtokencCsX|tjkr0|jj|ƒ|jjj|ƒ}|dk r0|S|jjj|ƒ}|dkrTtd|||ƒ‚|S)Nz bad token) rÚNAMErÚaddrÚkeywordsÚgetÚtokensr)r rrr r$r r r r ¡s  zParser.classifyc CsT|jd\}}}|||df}|j|j|ƒ}|dk r@|dj|ƒ|||f|jd<dS)Nrrrr)rrrÚappend) r rrr)r r%r&rrr r r r!¯s  z Parser.shiftc CsB|jd\}}}|d|gf}|||f|jd<|jj|d|fƒdS)Nrrrr)rr2) r rZnewdfar)r r%r&rrr r r r#¸s z Parser.pushcCs`|jjƒ\}}}|j|j|ƒ}|dk r\|jrL|jd\}}}|dj|ƒn||_|j|j_dS)Nrrr)rr"rrr2rr)r ZpopdfaZpopstateZpopnoderr%r&rr r r r"¿sz Parser.pop)N)N) r rrrrr,r r!r#r"r r r r rs 0 rN)ÚrrrÚobjectrr r r r Ús