K i|ddlmZmZmZmZddlmZddlmZddl m Z GddZ GddZ Gd d Z y ) )OptionalIteratorTupleList)tokenize)parse_version_string)PythonTokenTypesc(eZdZdddeefdZdZy)NFAArcnext_NFAStatenonterminal_or_stringc ||_||_yN)nextrselfr rs `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/parso/pgen2/grammar_parser.py__init__zNFAArc.__init__s# 4I"cPd|jjd|jdS)N) __class____name__rrs r__repr__zNFAArc.__repr__s!^^44d6P6PQQrN)r __module__ __qualname__rstrrrrrr r s"JjJ#JRrr c&eZdZdefdZddZdZy)r from_rulec ||_g|_yr)r#arcs)rr#s rrzNFAState.__init__s'"$ rNc|t|tsJt|tsJ|jj t ||yr) isinstancer r r%appendr rs radd_arczNFAState.add_arcsC$, ;PRU0VVV%*** '<=>rcPd|jjd|jdS)Nrz: from r)rrr#rs rrzNFAState.__repr__!s"&.."9"94>>JJrr)rrrr rr)rr!rrr r s%#%? Krr cdeZdZdZdefdZdeeeeffdZ dZ dZ dZ d Z dd Zd Zd Zy ) GrammarParserz. The parser for Python grammar files. bnf_grammarch||_t|td|_|j y)Nz3.9) version_info) _bnf_grammarrr generator _gettoken)rr-s rrzGrammarParser.__init__)s-'! -e4  rreturnc#K|jtjk7r|jtjk(r.|j |jtjk(r.|j tj |_|j tjd|j\}}|j tj||f|jtjk7ryyw)N:) typer ENDMARKERNEWLINEr2_expectNAME_current_rule_nameOP _parse_rhsrazs rparsezGrammarParser.parse1sii+555))/777 ))/777'+ll3C3H3H&ID # LL),,c 2??$DAq LL)11 2Q$Jii+555sA(D+BDDcX|j\}}|jdk7r||fSt|j}t|j} |j ||j ||jdk7r ||fS|j |j\}}Z)N|) _parse_itemsvaluer r;r)r2)rr?r@aazzs rr=zGrammarParser._parse_rhs@s  "1 :: a4K$112B$112B 1  " ::$r6M ((*1rch|j\}}|jtjtjfvs|j dvrb|j\}}|j ||}|jtjtjfvrS|j dvrb||fS)N)([) _parse_itemr6r r:STRINGrEr))rr?bcds rrDzGrammarParser._parse_itemsTs!1ii,113C3J3JKK::+##%DAq IIaLA ii,113C3J3JKK::+ !t rcz|jdk(rX|j|j\}}|jtj d|j |||fS|j\}}|j}|dvr||fS|j|j ||dk(r||fS||fS)NrJ])+*rR)rEr2r=r9r r<r) _parse_atom)rr?r@rEs rrKzGrammarParser._parse_item_s ::  NN ??$DAq LL),,c 2 IIaLa4K##%DAqJJEJ&!t NN  IIaL|!t !t rc |jdk(rG|j|j\}}|jtj d||fS|j tjtjfvrZt|j}t|j}|j||j|j||fS|jd|j |jy)NrI)z+expected (...) or NAME or STRING, got %s/%s) rEr2r=r9r r<r6r:rLr r;r) _raise_errorr>s rrTzGrammarParser._parse_atomxs ::  NN ??$DAq LL),,c 2a4K YY+002B2I2IJ J001A001A IIa $ NN a4K   K"ii 5rNc|j|k7r(|jd||j|j|,|j|k7r|jd||j|j}|j|S)Nzexpected %s, got %s [%s]zexpected %s, got %s)r6rWrEr2)rtype_rEs rr9zGrammarParser._expectsn 99    8#TYY  <  u!4   3UDJJ G   rcZt|j}|\|_|_|_}yr)rr1r6rEbegin)rtupprefixs rr2zGrammarParser._gettokens$4>>"471 4:tz6rc &|r ||z}|jj |j ddz }t|d|j d|j d|f#dj|gttt|z}YxYw)N rz )joinlistmapr r0 splitlinesr[ SyntaxError)rmsgargslines rrWzGrammarParser._raise_errors  =Dj  ++-djjma.?@# TZZ] $ 1 t 56 6 =hhutCTN';;<s A .Br)rrr__doc__r rrrr rAr=rDrKrTr9r2rWr!rrr,r,%sQC xh&8 9: ( 25$86rr,N)typingrrrrparso.python.tokenizer parso.utilsrparso.python.tokenr r r r,r!rrrns:32*,/RR K K{6{6r