gΈ!WddlmZmZmZGddejZGddeZGddeZGdd eZ d d Z y ) )grammartokentokenizec eZdZy) PgenGrammarN)__name__ __module__ __qualname__9/opt/alt/python312/lib64/python3.12/lib2to3/pgen2/pgen.pyrrsr rc|eZdZddZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZddZdZdZy)ParserGeneratorNc<d}|t|d}|j}||_||_t j |j |_|j|j\|_ |_ ||i|_ |jy)Nzutf-8)encoding)openclosefilenamestreamrgenerate_tokensreadline generatorgettokenparsedfas startsymbolfirst addfirstsets)selfrr close_streams r __init__zParserGenerator.__init__ s >(W5F!<==KKCIIe$4 56 d#  HHOOF #-3T__Q5M,NAFF1??4( )//$"2"23r cv|j|}i}t|D]}|j||}d||<|SNr)rr-r1)rr7r9rawfirstrr=ilabels r r5zParserGenerator.make_first4sD::d#H%E__Q.FE&M& r ct|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|}|djrY||jvr|j|S|jj tj|f||j|<|Stj |}||jvr|j|S|jj |df||j|<|S)Nr#)"')r*labelsisalphar+ symbol2labelr0getattrr isinstanceinttok_nametokensevalkeywordsNAMEropmap)rr7r=rCitokenvalues r r1zParserGenerator.make_label=sQXX 8   'ANN*>>%00HHOOQ__U%;T$BC,2ANN5)!M!t4!&#.55./66/QXX%88F++HHOOVTN3'-AHHV$!M8z) 05 0)KEQx!AJJ&::e,,HHOOUZZ$78(.AJJu%!M!u-QXX%88F++HHOOVTN3'-AHHV$!Mr ct|jj}|j|D]"}||jvs|j |$yN)r%rr&r'r calcfirst)rr8r9s r rzParserGenerator.addfirstsetsksBTYY^^%& D4::%t$r c 8|j|}d|j|<|d}i}i}|jjD]\}}||jvrd||jvr|j|}|.t d|z|j ||j|}|j ||||<xd||<|di||<i} |jD]/\}} | D]%} | | vrt d|d| d|d| | || | <'1||j|<y)Nr#zrecursion for rule %rrzrule z is ambiguous; z is in the first sets of z as well as )rrr.r/ ValueErrorrWupdate) rr9r;r<totalset overlapcheckr=r>fsetinverseitsfirstsymbols r rWzParserGenerator.calcfirstss;iio 4A  ::++-KE4 !DJJ&::e,D|()@4)GHHNN5)::e,D%&* U#"#',aj U#.+113OE8"W$$&*FE76?&LMM#( # 4$ 4r ci}d}|jtjk7r|jtjk(r.|j |jtjk(r.|j tj }|j tjd|j\}}|j tj|j||}t|}|j|t|}|||<||}|jtjk7r||fS)N:) typer ENDMARKERNEWLINErexpectrQOP parse_rhsmake_dfar* simplify_dfa) rrrr9azr;oldlennewlens r rzParserGenerator.parses ii5??*))u}}, ))u}},;;uzz*D KK# &>>#DAq KK &--1%CXF   c "XFDJ"" #ii5??*$[  r c  t|tsJt|tsJ fd} fd t|||g}|D]}i}|jD]2}|jD]!\}} |  | |j |i#4t |jD]L\}} |D]} | j| k(snt| |} |j| |j| |N|S)Nci}|||SrVr )r<base addclosures r closurez)ParserGenerator.make_dfa..closuresD ud #Kr c~t|tsJ||vryd||<|jD]\}}| ||yrA)rKNFAStater.)r<rqr=r>rrs r rrz,ParserGenerator.make_dfa..addclosuresGeX. ..}DK$zz t=tT* *r ) rKruDFAStatenfasetr. setdefaultr-r/r0addarc) rr6finishrsr4r<r.nfastater=r>rwstrrs @r rizParserGenerator.make_dfas %***&(+++  +75>623ED!LL#+==KE4("4)CD$1)"( !5 v ByyF*!"&&1BMM"% R'"6  r cDtd||g}t|D]\}}td|||uxrdxsd|jD]X\}}||vr|j|} nt |} |j ||td| zItd|| fzZy)NzDump of NFA for State(final)z -> %d %s -> %d)print enumerater.r2r*r0) rr9r6rztodor:r<r=r>js r dump_nfazParserGenerator.dump_nfas &w!$HAu )Q =I C D$zz t4< 4(AD AKK%=+/*.E1:56 *(r c td|t|D]n\}}td||jxrdxsdt|jj D]$\}}td||j |fz&py)NzDump of DFA forr~rrr)rrr3r-r.r/r2)rr9r;r:r<r=r>s r dump_dfazParserGenerator.dump_dfass &!#HAu )Q ;) Ar B%ejj&6&6&89 tnsyy'??@ :'r cd}|r`d}t|D]L\}}t|dzt|D],}||}||k(s||=|D]}|j||d}LN|r_yy)NTFr)rranger* unifystate)rr;changesr:state_irstate_jr<s r rjzParserGenerator.simplify_dfas{G'n 7qsCH-A!!fG')F%(E!,,Wg>&)"&.-r c|j\}}|jdk7r||fSt}t}|j||j||jdk(rU|j |j\}}|j||j||jdk(rU||fS)N|) parse_altrTruryr)rrkrlaazzs r rhzParserGenerator.parse_rhss~~1 :: a4KBB IIaL HHRL**# ~~'1 !  **# r6Mr ch|j\}}|jdvs,|jtjtj fvrb|j\}}|j ||}|jdvr5|jtjtj fvrb||fS)N)([) parse_itemrTrcrrQSTRINGry)rrkbr7ds r rzParserGenerator.parse_alt s 1zzZ'yyUZZ66??$DAq HHQKA zzZ'yyUZZ66!t r cz|jdk(rX|j|j\}}|jtj d|j |||fS|j\}}|j}|dvr||fS|j|j ||dk(r||fS||fS)Nr])+*r)rTrrhrfrrgry parse_atom)rrkrlrTs r rzParserGenerator.parse_items ::  MMO>>#DAq KK# & HHQKa4K??$DAqJJEJ&!t MMO HHQK|!t !t r c|jdk(rG|j|j\}}|jtj d||fS|j tjtjfvrDt}t}|j||j|j||fS|jd|j |jy)Nr)z+expected (...) or NAME or STRING, got %s/%s) rTrrhrfrrgrcrQrrury raise_error)rrkrls r rzParserGenerator.parse_atom(s ::  MMO>>#DAq KK# &a4K YY5::u||4 4 A A HHQ # MMOa4K   J!YY  4r c|j|k7s|8|j|k7r)|jd|||j|j|j}|j|S)Nzexpected %s/%s, got %s/%s)rcrTrr)rrcrTs r rfzParserGenerator.expect9sX 99 !2tzzU7J   8!5$))TZZ A   r c0t|j}|dtjtjfvr;t|j}|dtjtjfvr;|\|_|_|_|_|_ y)Nr#) r>rrCOMMENTNLrcrTbeginendline)rtups r rzParserGenerator.gettokenAsp4>>"!f))8;;77t~~&C!f))8;;77AD> 4:tz48TYr c |r ||z}t ||j |j d|j d|jf#dj|gttt|z}YnxYw)N r#r)joinr%mapstr SyntaxErrorrrr)rmsgargss r rzParserGenerator.raise_errorHsq  =Dj# txx{ $ TYY 89 9 =hhutCTN';;<s A.A7rV)rr r r!r?r5r1rrWrrirrrjrhrrrrfrrr r r rr s` 2,"\%$<!0"H7 A*"(4"E9r rceZdZdZddZy)rucg|_yrV)r.)rs r r!zNFAState.__init__Ss  r Nc|t|tsJt|tsJ|jj ||fyrV)rKrrur.r0rr>r=s r ryzNFAState.addarcVs<} 5# 666$))) %'r rV)rr r r!ryr r r ruruQs (r ruc(eZdZdZdZdZdZdZy)rvct|tsJttt|tsJt|tsJ||_||v|_i|_yrV)rKdictr>iterrurwr3r.)rrwfinals r r!zDFAState.__init__]sT&$'''$tF|,h777%***   r ct|tsJ||jvsJt|tsJ||j|<yrV)rKrr.rvrs r ryzDFAState.addarcesB%%%%DII%%%$))) %r cp|jjD]\}}||us ||j|<yrV)r.r/)roldnewr=r>s r rzDFAState.unifystateks099??,KE4s{#& % -r c6t|tsJ|j|jk7ryt|jt|jk7ry|jj D]$\}}||jj |us$yy)NFT)rKrvr3r*r.r/get)rotherr=r>s r __eq__zDFAState.__eq__psx%*** <<5== ( tyy>S_ ,99??,KE45::>>%00-r N)rr r r!ryrr__hash__r r r rvrv[s ' Hr rvc8t|}|jSrV)rr?)rps r generate_grammarrs!A >> r N)z Grammar.txt) rrrrGrammarrobjectrrurvrr r r rsJ '& '// E9fE9N (v(#v#Jr