ZL i;ddlZddlmZmZddlmZmZmZmZm Z ddl m Z m Z m Z ddlmZe edfZGdde j$ZGd d ZGd d ZGd dZddedefdZy)N)IteratorSequence)IOAnyNoReturnOptionalUnion)grammartokentokenize) TokenInfozos.PathLike[str]c eZdZy) PgenGrammarN)__name__ __module__ __qualname__Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/blib2to3/pgen2/pgen.pyrrsrrceZdZUeed<eeed<eeed<e ee e ee ffed<d%dede eeddfdZ de fdZd e d ede e e ffd Zd e d ede fd Zd&dZd eddfdZdee eedfeffdZdddddedfdZd eddddddfdZd ededddfdZdedddfdZdedfdZdedfdZdedfdZdedfdZd%de d e edefd!Z d&d"Z!d#ede"fd$Z#y)'ParserGeneratorfilenamestream generatorfirstNreturnc6d}|t|d}|j}||_tj|j |_|j |j\|_|_ ||i|_ |jy)Nzutf-8)encoding) opencloserr readrgettokenparsedfas startsymbolr addfirstsets)selfrr close_streams r__init__zParserGenerator.__init__s| >(W5F!<r@c~|j|}|Ji}t|D]}|j||}d||<|SN)rr4r8)r'r>r@rawfirstrrDilabels rr<zParserGenerator.make_first?sU::d####H% E__Q.FE&M  rrDct|j}|djr||jvrX||jvr|j|S|jj |j|df||j|<|St t|d}t|tsJ||tjvsJ|||jvr|j|S|jj |df||j|<|S|ddvsJ|t|}|djr\|ddk(r |j}n |j}||vr||S|jj tj|f|||<|St j"|}||jvr|j|S|jj |df||j|<|S)Nr)"'rM)r1labelsisalphar2 symbol2labelr7getattrr isinstanceinttok_nametokenseval soft_keywordskeywordsNAMEr opmap)r'r>rDrKitokenvaluerYs rr8zParserGenerator.make_labelIsQXX 8   'ANN*>>%00HHOOQ__U%;T$BC,2ANN5)!M!t4!&#.55./66/QXX%88F++HHOOVTN3'-AHHV$!M8z) 05 0)KEQx!8s? H zzHH$#E?*HHOOUZZ$78&,HUO!M!u-QXX%88F++HHOOVTN3'-AHHV$!Mrct|jj}|j|D]"}||jvs|j |$yN)r,r$r-r.r calcfirst)r'r?r@s rr&zParserGenerator.addfirstsets|sGTYY^^%&  %D4::%t$ %rc |j|}d|j|<|d}i}i}|jD]}||jvrh||jvr|j|}|2td||j ||j|}|J|j ||||<yd||<|di||<i}|j D]/\}} | D]%} | |vrtd|d| d|d|| ||| <'1||j|<y)Nrzrecursion for rule rIzrule z is ambiguous; z is in the first sets of z as well as )r$rr5 ValueErrorr`updater6) r'r@rBrCtotalset overlapcheckrDfsetinverseitsfirstsymbols rr`zParserGenerator.calcfirsts^iio 4A#% ZZ 1E !DJJ&::e,D|(+>th)GHHNN5)::e,D+++%&* U#"#',aj U# 1#%+113 (OE8" (W$$v_VH=!7,wv.?A#(  ( ($ 4rDFAStatecdi}d}|jtjk7r|jtjk(r.|j |jtjk(r.|j tj }|j tjd|j\}}|j tj|j||}|j||||<||}|jtjk7r|J||fS)N:) typer ENDMARKERNEWLINEr"expectrZOP parse_rhsmake_dfa simplify_dfa)r'r$r%r@azrBs rr#zParserGenerator.parses%) ii5??*))u}}, ))u}},;;uzz*D KK# &>>#DAq KK &--1%C   c "DJ"" #ii5??*$&&&[  rr=NFAStatefinishc Z t|tsJt|tsJdtdtttff fd }dtdtttfddf fd t |||g}|D]}i}|j D]2}|j D]!\}} |  | |j|i#4t|jD]L\}} |D]} | j | k(snt | |} |j| |j| |N|S)NrCrci}|||Sr_r)rCbase addclosures rclosurez)ParserGenerator.make_dfa..closures(*D ud #Krr{c~t|tsJ||vryd||<|jD]\}}| ||yrH)rSrwr5)rCr{rDrEr|s rr|z,ParserGenerator.make_dfa..addclosuresLeX. ..}DK$zz + t=tT* +r) rSrwdictrTrjnfasetr5 setdefaultr4r6r7addarc) r'r=rxr}r;rCr5nfastaterDrErstr|s @rrszParserGenerator.make_dfasC %***&(+++ 8 Xs](;   +h +d8S=.A +d +75>623 (E35D!LL E#+==EKE4("4)CDE E"( !5 ( v &ByyF*&"&&1BMM"% R' ( ( rcFtd||g}t|D]\}}td|||uxrdxsd|jD]Y\}}||vr|j|} nt |} |j ||td| Itd|d| [y)NzDump of NFA for State(final)z ->   -> )print enumerater5r9r1r7) r'r@r=rxtodorArCrDrEjs rdump_nfazParserGenerator.dump_nfas &w!$ 1HAu )Q =I C D$zz 1 t4< 4(AD AKK%=GA3-(DtA3/0 1 1rrBc td|t|D]o\}}td||jxrdxsdt|jj D]%\}}td|d|j |'qy)NzDump of DFA forrrrrr)rrr:r4r5r6r9)r'r@rBrArCrDrEs rdump_dfazParserGenerator.dump_dfas &!# ;HAu )Q ;) Ar B%ejj&6&6&89 ; tUG4 $'89: ; ;rcd}|r`d}t|D]L\}}t|dzt|D],}||}||k(s||=|D]}|j||d}LN|r_yy)NTFrI)rranger1 unifystate)r'rBchangesrAstate_irstate_jrCs rrtzParserGenerator.simplify_dfasG'n  7q1uc#h/A!!fG')F%(?E!,,Wg>?"& r)rwrwc|j\}}|jdk7r||fSt}t}|j||j||jdk(rU|j |j\}}|j||j||jdk(rU||fS)N|) parse_altr]rwrr")r'rurvaazzs rrrzParserGenerator.parse_rhss~~1 :: a4KBB IIaL HHRL**# ~~'1 !  **# r6Mrch|j\}}|jdvs,|jtjtj fvrb|j\}}|j ||}|jdvr5|jtjtj fvrb||fS)N)([) parse_itemr]rmr rZSTRINGr)r'rubr>ds rrzParserGenerator.parse_alt!s 1jjJ&$)) ELL7Q*Q??$DAq HHQKAjjJ&$)) ELL7Q*Q!t rcz|jdk(rX|j|j\}}|jtj d|j |||fS|j\}}|j}|dvr||fS|j|j ||dk(r||fS||fS)Nr])+*r)r]r"rrrpr rqr parse_atom)r'rurvr]s rrzParserGenerator.parse_item*s ::  MMO>>#DAq KK# & HHQKa4K??$DAqJJEJ&!t MMO HHQK|!t !t rc|jdk(rG|j|j\}}|jtj d||fS|j tjtjfvrDt}t}|j||j|j||fS|jd|j d|jy)Nr)z&expected (...) or NAME or STRING, got /) r]r"rrrpr rqrmrZrrwr raise_error)r'rurvs rrzParserGenerator.parse_atom>s ::  MMO>>#DAq KK# &a4K YY5::u||4 4 A A HHQ # MMOa4K   8 1TZZLQ rrmr]c |j|k7s|@|j|k7r1|jd|d|d|jd|j|j}|j|S)Nz expected rz, got )rmr]rr")r'rmr]s rrpzParserGenerator.expectPsd 99 !2tzzU7J   yawfTYYKq U V   rc0t|j}|dtjtjfvr;t|j}|dtjtjfvr;|\|_|_|_|_|_ y)Nr) rErr COMMENTNLrmr]beginendline)r'tups rr"zParserGenerator.gettokenWsp4>>"!f))8;;77t~~&C!f))8;;77AD> 4:tz48TYrmsgct|t|j|jd|jd|jf)NrrI) SyntaxErrorstrrrr)r'rs rrzParserGenerator.raise_error^s: #dmm$dhhqk488A; J  rr_rN)$rrrPath__annotations__rrrr rrrTr)rrFr<r8r&r`tupler,r#rsrrrrtrrrrrrrpr"rrrrrrrsN sGO "" Xd38n-- ..  x3/@ D k2KstCH~1"K1"1"1"f%$c$d$@!uT#tJ'7"78#=>!2%j%*%jAQ%N1S11Z1D1 ;S;x ';;;Z 0T*5!78"5!78E"89(E"89$3x}E s x rrcReZdZUeeeedfed<ddZd dddeeddfdZ y) rwr5rNcg|_yr_)r5)r's rr)zNFAState.__init__gs  rrErDc|t|tsJt|tsJ|jj ||fyr_)rSrrwr5r7r'rErDs rrzNFAState.addarcjs<} 5# 666$))) %'rrr_) rrrr,rrrrr)rrrrrwrwds> uXc]J./ 00(:(hsm(t(rrwceZdZUeeefed<eed<eedfed<deeefdeddfdZ ddd eddfd Z dd Z d edefd Z dZ eed<y)rjrr:r5finalrNct|tsJttt|tsJt|tsJ||_||v|_i|_yr_)rSrrEiterrwrr:r5)r'rrs rr)zDFAState.__init__usT&$'''$tF|,h777%***   rrErDct|tsJ||jvsJt|tsJ||j|<yr_)rSrr5rjrs rrzDFAState.addarc}sB%%%%DII%%%$))) %rcp|jjD]\}}||us ||j|<yr_)r5r6)r'oldnewrDrEs rrzDFAState.unifystates599??, 'KE4s{#& %  'rotherc6t|tsJ|j|jk7ryt|jt|jk7ry|jj D]$\}}||jj |us$yy)NFT)rSrjr:r1r5r6get)r'rrDrEs r__eq__zDFAState.__eq__s}%*** <<5== ( tyy>S_ ,99??, KE45::>>%00 r__hash__)rrjrrjrN)rrrrrwrrboolrr)rrrrrrrrjrjps 3  M sJ tHcM28 : c d ' C D Hcrrjrrc8t|}|jSr_)rrF)rps rgenerate_grammarrs!A >> r)z Grammar.txt)oscollections.abcrrtypingrrrrr blib2to3.pgen2r r r blib2to3.pgen2.tokenizer rrGrammarrrrwrjrrrrrsq .5533- S$ $% '// O O d ( (&&Rt r