B ߽f@s0ddlmZGdddeZGdddeZdS))tokenc@seZdZddZdS) ParseErrorcCs4t|d||||f||_||_||_||_dS)Nz!%s: type=%r, value=%r, context=%r) Exception__init__msgtypevaluecontext)selfrrrr r 6/opt/alt/python37/lib/python3.7/lib2to3/pgen2/parse.pyrs zParseError.__init__N)__name__ __module__ __qualname__rr r r r rsrc@sHeZdZdddZdddZddZdd Zd d Zd d ZddZ dS)ParserNcCs||_|pdd|_dS)NcSs|S)Nr )grammarnoder r r Wz!Parser.__init__..)rconvert)r rrr r r r9szParser.__init__cCsH|dkr|jj}|ddgf}|jj|d|f}|g|_d|_t|_dS)N)rstartdfasstackrootnodeset used_names)r rnewnodeZ stackentryr r r setupYs  z Parser.setupcCs8||||}x"|jd\}}}|\}} ||} x| D]\} } |jj| \} }|| kr|||| || }x@||d|fgkr||jsdS|jd\}}}|\}} qnWdS| dkr8|jj| }|\}}||kr8|| |jj| | |Pq8Wd|f| kr"||js0td|||qtd|||qWdS)NrTFztoo much inputz bad input) classifyrrlabelsshiftpoprpushr)r rrr ilabeldfastaterZstatesfirstZarcsinewstatetvZitsdfaZ itsstatesZitsfirstr r r addtokenqs:   zParser.addtokencCsX|tjkr0|j||jj|}|dk r0|S|jj|}|dkrTtd||||S)Nz bad token) rNAMEraddrkeywordsgettokensr)r rrr r&r r r r!s  zParser.classifyc CsT|jd\}}}|||df}||j|}|dk r@|d||||f|jd<dS)Nr)rrrappend) r rrr+r r'r(rrr r r r#s  z Parser.shiftc CsB|jd\}}}|d|gf}|||f|jd<|j|d|fdS)Nrr)rr4) r rZnewdfar+r r'r(rrr r r r%s z Parser.pushcCs`|j\}}}||j|}|dk r\|jrL|jd\}}}|d|n||_|j|j_dS)Nr)rr$rrr4rr)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)rrrobjectrr r r r s