asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T a d5@sdddlmZmZmZGdddejZGdddeZGdddeZGdd d eZ dd d Z d S))grammartokentokenizec@s eZdZdS) PgenGrammarN)__name__ __module__ __qualname__r r 0/usr/src/Python-3.9.18/Lib/lib2to3/pgen2/pgen.pyrsrc@seZdZd&ddZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd'd d!Zd"d#Zd$d%ZdS)(ParserGeneratorNcCsld}|durt|}|j}||_||_t|j|_|| \|_ |_ |durZ|i|_ | dSN)openclosefilenamestreamrgenerate_tokensreadline generatorgettokenparsedfas startsymbolfirst addfirstsets)selfrrZ close_streamr r r __init__ szParserGenerator.__init__c Cst}t|j}|||j|d|j|D]&}dt|j }||j |<||j |<q:|D]}|j|}g}|D]`}g}t |j D]$\} } |||| || fq|jr|d||f||q||j|||||f|j|j |<qf|j |j|_|S)N)rlistrkeyssortremoverinsertlen symbol2number number2symbolsortedarcsitemsappend make_labelindexisfinalstates make_firststart) rcnamesnameidfar-stater'labelnextr r r make_grammars.      zParserGenerator.make_grammarcCs4|j|}i}t|D]}|||}d||<q|SNr)rr&r*)rr0r2Zrawfirstrr6ilabelr r r r.4s     zParserGenerator.make_firstcCsbt|j}|dr||jvrZ||jvr4|j|S|j|j|df||j|<|Snbtt|d}t|t sxJ||tj vsJ|||j vr|j |S|j|df||j |<|Sn|ddvsJ|t |}|dr ||j vr|j |S|jtj|f||j |<|Sn>tj|}||j vr@|j |S|j|df||j |<|SdS)Nr)"')r#labelsisalphar$ symbol2labelr)getattrr isinstanceinttok_nametokensevalkeywordsNAMEropmap)rr0r6r:Zitokenvaluer r r r*=s<                 zParserGenerator.make_labelcCs8t|j}||D]}||jvr||qdSr )rrrr r calcfirst)rr1r2r r r rks  zParserGenerator.addfirstsetsc Cs|j|}d|j|<|d}i}i}|jD]x\}}||jvr||jvrj|j|}|dur~td|n|||j|}|||||<q.d||<|di||<q.i} |D]:\}} | D],} | | vrtd|| || | f|| | <qq||j|<dS)Nrzrecursion for rule %rrzArule %s is ambiguous; %s is in the first sets of %s as well as %s)rrr'r( ValueErrorrJupdate) rr2r4r5ZtotalsetZ overlapcheckr6r7fsetZinverseitsfirstZsymbolr r r rJss4          zParserGenerator.calcfirstc Csi}d}|jtjkr|jtjkr*|q|tj}|tjd|\}}|tj| ||}t |}| |t |}|||<|dur|}q||fS)N:) typer ENDMARKERNEWLINErexpectrGOP parse_rhsmake_dfar# simplify_dfa) rrrr2azr4ZoldlenZnewlenr r r rs"        zParserGenerator.parsec st|tsJt|tsJfdd}fddt|||g}|D]}i}|jD].}|jD]"\}} |dur`| ||iq`qVt|D]@\}} |D]} | j| krqqt| |} || | | |qqH|S)Ncsi}|||Sr r )r5base addclosurer r closures z)ParserGenerator.make_dfa..closurecsHt|tsJ||vrdSd||<|jD]\}}|dur(||q(dSr9)rANFAStater')r5rZr6r7r[r r r\sz,ParserGenerator.make_dfa..addclosure) rAr^DFAStatenfasetr' setdefaultr&r(r)addarc) rr/finishr]r-r5r'Znfastater6r7r`str r[r rVs&      zParserGenerator.make_dfac Cstd||g}t|D]|\}}td|||ur2dp4d|jD]T\}}||vrZ||} nt|} |||durtd| q>td|| fq>qdS)NzDump of NFA for State(final)z -> %d %s -> %d)print enumerater'r+r#r)) rr2r/rcZtodor3r5r6r7jr r r dump_nfas   zParserGenerator.dump_nfacCsdtd|t|D]L\}}td||jr*dp,dt|jD]\}}td|||fq>qdS)NzDump of DFA forrerfrgrh)rirjr,r&r'r(r+)rr2r4r3r5r6r7r r r dump_dfas  zParserGenerator.dump_dfacCspd}|rld}t|D]T\}}t|dt|D]8}||}||kr.||=|D]}|||qLd}qq.qqdS)NTFr)rjranger# unifystate)rr4Zchangesr3Zstate_irkZstate_jr5r r r rWszParserGenerator.simplify_dfacCs~|\}}|jdkr||fSt}t}|||||jdkrr||\}}||||q>||fSdS)N|) parse_altrIr^rbr)rrXrYZaaZzzr r r rUs        zParserGenerator.parse_rhscCsL|\}}|jdvs(|jtjtjfvrD|\}}|||}q ||fS)N)([) parse_itemrIrPrrGSTRINGrb)rrXbr0dr r r rq s    zParserGenerator.parse_altcCs|jdkr>||\}}|tjd||||fS|\}}|j}|dvr`||fS||||dkr||fS||fSdS)Nrs])+*ry)rIrrUrSrrTrb parse_atom)rrXrYrIr r r rts     zParserGenerator.parse_itemcCs|jdkr4||\}}|tjd||fS|jtjtjfvrpt }t }| ||j|||fS| d|j|jdS)Nrr)z+expected (...) or NAME or STRING, got %s/%s) rIrrUrSrrTrPrGrur^rb raise_error)rrXrYr r r r{(s  zParserGenerator.parse_atomcCsD|j|ks|dur2|j|kr2|d|||j|j|j}||S)Nzexpected %s/%s, got %s/%s)rPrIr}r)rrPrIr r r rS9s zParserGenerator.expectcCsFt|j}|dtjtjfvr*t|j}q |\|_|_|_|_|_ dS)Nr) r7rrCOMMENTNLrPrIZbeginendline)rtupr r r rAs  zParserGenerator.gettokenc Gs^|r8z ||}Wn&d|gttt|}Yn0t||j|jd|jd|jfdS)N rr)joinrmapstr SyntaxErrorrrr)rmsgargsr r r r}Hs   zParserGenerator.raise_error)N)N)rrrrr8r.r*rrJrrVrlrmrWrUrqrtr{rSrr}r r r r r s$  .$  r c@seZdZddZdddZdS)r^cCs g|_dSr )r')rr r r rSszNFAState.__init__NcCs8|dust|tsJt|ts$J|j||fdSr )rArr^r'r)rr7r6r r r rbVszNFAState.addarc)N)rrrrrbr r r r r^Qsr^c@s0eZdZddZddZddZddZd Zd S) r_cCsLt|tsJttt|ts$Jt|ts2J||_||v|_i|_dSr )rAdictr7iterr^r`r,r')rr`finalr r r r]s  zDFAState.__init__cCs8t|tsJ||jvsJt|ts*J||j|<dSr )rArr'r_rr r r rbeszDFAState.addarccCs*|jD]\}}||ur ||j|<q dSr )r'r()roldnewr6r7r r r rokszDFAState.unifystatecCsdt|tsJ|j|jkrdSt|jt|jkr6dS|jD]\}}||j|ur@dSq@dS)NFT)rAr_r,r#r'r(get)rotherr6r7r r r __eq__ps zDFAState.__eq__N)rrrrrbror__hash__r r r r r_[s r_ Grammar.txtcCst|}|Sr )r r8)rpr r r generate_grammarsrN)r) rgrrrGrammarrobjectr r^r_rr r r r sI %