]u@s@ddlmZGdddeZGdddeZdS))tokenc@seZdZddZdS) ParseErrorcCsHtj|d||||f||_||_||_||_dS)Nz!%s: type=%r, value=%r, context=%r) Exception__init__msgtypevaluecontext)selfrrrr r */opt/alt/python35/lib64/python3.5/parse.pyrs     zParseError.__init__N)__name__ __module__ __qualname__rr r r r rs rc@sjeZdZdddZdddZddZdd Zd d Zd d ZddZ dS)ParserNcCs"||_|pdd|_dS)NcSs|S)Nr )grammarnoder r r Wsz!Parser.__init__..)rconvert)r rrr r r r9s zParser.__init__cCsh|dkr|jj}|ddgf}|jj|d|f}|g|_d|_t|_dS)N)rstartdfasstackrootnodeset used_names)r rnewnodeZ stackentryr r r setupYs    z Parser.setupcCs|j|||}x|jd\}}}|\}} ||} xV| D]\} } |jj| \} }|| kr|j||| || }xV||d|fgkr|j|jsdS|jd \}}}|\}} qWdS| dkrK|jj| }|\}}||krK|j| |jj| | |PqKWd|f| kr|j|jstd|||qtd|||qWdS) NrrTFztoo much inputz bad inputr) classifyrrZlabelsshiftpoprpushr)r rrr ilabeldfastaterZstatesfirstZarcsinewstatetvZitsdfaZ itsstatesZitsfirstr r r addtokenqs:           zParser.addtokencCs~|tjkrD|jj||jjj|}|dk rD|S|jjj|}|dkrztd||||S)Nz bad token) rNAMEraddrkeywordsgettokensr)r rrr r$r r r r s  zParser.classifyc Cst|jd\}}}|||df}|j|j|}|dk rZ|dj||||f|jds