Viewing File: /opt/alt/python38/lib64/python3.8/lib2to3/pgen2/__pycache__/pgen.cpython-38.opt-2.pyc

U

¡ê,aô5ã@sdddlmZmZmZGdd„dejƒZGdd„deƒZGdd„deƒZGdd	„d	eƒZ	ddd„Z
d
S)é)ÚgrammarÚtokenÚtokenizec@seZdZdS)ÚPgenGrammarN)Ú__name__Ú
__module__Ú__qualname__©r	r	ú7/opt/alt/python38/lib64/python3.8/lib2to3/pgen2/pgen.pyrsrc@s eZdZd&dd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zdd„Zd'd d!„Zd"d#„Zd$d%„ZdS)(ÚParserGeneratorNcCsld}|dkrt|ƒ}|j}||_||_t |j¡|_| ¡| 	¡\|_
|_|dk	rZ|ƒi|_| 
¡dS©N)ÚopenÚcloseÚfilenameÚstreamrÚgenerate_tokensÚreadlineÚ	generatorÚgettokenÚparseÚdfasÚstartsymbolÚfirstÚ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]$\}	}
| | ||	¡| |
¡f¡q’|jrÒ| d| |¡f¡| |¡q||j |¡|| ||¡f|j|j	|<qf|j	|j|_|S)Néé)rÚlistrÚkeysÚsortÚremoverÚinsertÚlenÚ
symbol2numberZ
number2symbolÚsortedÚarcsÚitemsÚappendÚ
make_labelÚindexÚisfinalÚstatesÚ
make_firstÚstart)rÚcÚnamesÚnameÚiÚdfar,Ústater&ÚlabelÚnextr	r	r
Úmake_grammars.

zParserGenerator.make_grammarcCs4|j|}i}t|ƒD]}| ||¡}d||<q|S©Nr)rr%r))rr/r1Zrawfirstrr5Úilabelr	r	r
r-4s

zParserGenerator.make_firstcCs&t|jƒ}|d ¡rš||jkrZ||jkr4|j|S|j |j|df¡||j|<|Sn>tt|dƒ}||jkrz|j|S|j |df¡||j|<|Snˆt	|ƒ}|d ¡rä||j
krÂ|j
|S|j tj|f¡||j
|<|Sn>tj
|}||jkr|j|S|j |df¡||j|<|SdS©Nr)r#ÚlabelsÚisalphar$Zsymbol2labelr(ÚgetattrrÚtokensÚevalÚkeywordsÚNAMErZopmap)rr/r5r9ZitokenÚvaluer	r	r
r)=s6













zParserGenerator.make_labelcCs8t|j ¡ƒ}| ¡|D]}||jkr| |¡qdSr)rrrr rÚ	calcfirst)rr0r1r	r	r
rks

zParserGenerator.addfirstsetsc	Csþ|j|}d|j|<|d}i}i}|j ¡D]x\}}||jkr’||jkrj|j|}|dkr~td|ƒ‚n| |¡|j|}| |¡|||<q.d||<|di||<q.i}	| ¡D]:\}}
|
D],}||	krätd||||	|fƒ‚||	|<qÀq´||j|<dS)Nrzrecursion for rule %rrzArule %s is ambiguous; %s is in the first sets of %s as well as %s)rrr&r'Ú
ValueErrorrCÚupdate)rr1r3r4ZtotalsetZoverlapcheckr5r6ÚfsetZinverseZitsfirstZsymbolr	r	r
rCss4








þzParserGenerator.calcfirstc	Cs i}d}|jtjkr˜|jtjkr*| ¡q| tj¡}| tjd¡| ¡\}}| tj¡| 	||¡}t
|ƒ}| |¡t
|ƒ}|||<|dkr|}q||fS)Nú:)ÚtyperÚ	ENDMARKERÚNEWLINErÚexpectrAÚOPÚ	parse_rhsÚmake_dfar#Úsimplify_dfa)	rrrr1ÚaÚzr3ZoldlenZnewlenr	r	r
r‘s"

zParserGenerator.parsec	s¾‡fdd„}‡fdd„‰t||ƒ|ƒg}|D]Œ}i}|jD].}|jD]"\}}	|dk	rDˆ|	| |i¡ƒqDq:t| ¡ƒD]@\}}
|D]}|j|
kr‚qªq‚t|
|ƒ}| |¡| ||¡qvq,|S)Ncsi}ˆ||ƒ|Srr	)r4Úbase©Ú
addclosurer	r
Úclosure°s
z)ParserGenerator.make_dfa.<locals>.closurecs:||krdSd||<|jD]\}}|dkrˆ||ƒqdSr8©r&)r4rRr5r6rSr	r
rT´sz,ParserGenerator.make_dfa.<locals>.addclosure)ÚDFAStateÚnfasetr&Ú
setdefaultr%r'r(Úaddarc)rr.ÚfinishrUr,r4r&Znfastater5r6rXÚstr	rSr
rN©s"



zParserGenerator.make_dfac
Csštd|ƒ|g}t|ƒD]|\}}td|||kr2dp4dƒ|jD]T\}}||krZ| |¡}	nt|ƒ}	| |¡|dkr‚td|	ƒq>td||	fƒq>qdS)NzDump of NFA forú  Stateú(final)Úz	    -> %dú    %s -> %d)ÚprintÚ	enumerater&r*r#r()
rr1r.r[Ztodor2r4r5r6Újr	r	r
Údump_nfaÍs

zParserGenerator.dump_nfacCsdtd|ƒt|ƒD]L\}}td||jr*dp,dƒt|j ¡ƒD]\}}td|| |¡fƒq>qdS)NzDump of DFA forr]r^r_r`)rarbr+r%r&r'r*)rr1r3r2r4r5r6r	r	r
Údump_dfaÝs

zParserGenerator.dump_dfacCspd}|rld}t|ƒD]T\}}t|dt|ƒƒD]8}||}||kr.||=|D]}| ||¡qLd}qq.qqdS)NTFr)rbÚranger#Ú
unifystate)rr3Zchangesr2Zstate_ircZstate_jr4r	r	r
rOäszParserGenerator.simplify_dfacCs~| ¡\}}|jdkr||fStƒ}tƒ}| |¡| |¡|jdkrr| ¡| ¡\}}| |¡| |¡q>||fSdS)Nú|)Ú	parse_altrBÚNFAStaterZr)rrPrQZaaZzzr	r	r
rMùs




zParserGenerator.parse_rhscCsL| ¡\}}|jdks(|jtjtjfkrD| ¡\}}| |¡|}q||fS)N)ú(ú[)Ú
parse_itemrBrHrrAÚSTRINGrZ)rrPÚbr/Údr	r	r
ri
s
ÿ
zParserGenerator.parse_altcCsŽ|jdkr>| ¡| ¡\}}| tjd¡| |¡||fS| ¡\}}|j}|dkr`||fS| ¡| |¡|dkr‚||fS||fSdS)Nrlú])ú+Ú*rr)rBrrMrKrrLrZÚ
parse_atom)rrPrQrBr	r	r
rms


zParserGenerator.parse_itemcCs†|jdkr4| ¡| ¡\}}| tjd¡||fS|jtjtjfkrpt	ƒ}t	ƒ}| 
||j¡| ¡||fS| d|j|j¡dS)Nrkú)z+expected (...) or NAME or STRING, got %s/%s)rBrrMrKrrLrHrArnrjrZÚraise_error)rrPrQr	r	r
rt(s
ÿzParserGenerator.parse_atomcCsD|j|ks|dk	r2|j|kr2| d|||j|j¡|j}| ¡|S)Nzexpected %s/%s, got %s/%s)rHrBrvr)rrHrBr	r	r
rK9sÿzParserGenerator.expectcCsFt|jƒ}|dtjtjfkr*t|jƒ}q
|\|_|_|_|_|_	dSr:)
r6rrÚCOMMENTÚNLrHrBZbeginÚendÚline)rÚtupr	r	r
rAs
zParserGenerator.gettokenc
Gs^|r8z||}Wn&d |gttt|ƒƒ¡}YnXt||j|jd|jd|jfƒ‚dS)Nú rr)ÚjoinrÚmapÚstrÚSyntaxErrorrryrz)rÚmsgÚargsr	r	r
rvHs ÿzParserGenerator.raise_error)N)N)rrrrr7r-r)rrCrrNrdrerOrMrirmrtrKrrvr	r	r	r
r
s$
	.$

rc@seZdZdd„Zddd„ZdS)rjcCs
g|_dSrrV)rr	r	r
rSszNFAState.__init__NcCs|j ||f¡dSr)r&r(©rr6r5r	r	r
rZVszNFAState.addarc)N)rrrrrZr	r	r	r
rjQsrjc@s0eZdZdd„Zdd„Zdd„Zdd„Zd	Zd	S)
rWcCs||_||k|_i|_dSr)rXr+r&)rrXÚfinalr	r	r
r]s
zDFAState.__init__cCs||j|<dSrrVrƒr	r	r
rZeszDFAState.addarccCs*|j ¡D]\}}||kr
||j|<q
dSr)r&r')rÚoldÚnewr5r6r	r	r
rgkszDFAState.unifystatecCsV|j|jkrdSt|jƒt|jƒkr(dS|j ¡D]\}}||j |¡k	r2dSq2dS)NFT)r+r#r&r'Úget)rÚotherr5r6r	r	r
Ú__eq__pszDFAState.__eq__N)rrrrrZrgr‰Ú__hash__r	r	r	r
rW[s
rWúGrammar.txtcCst|ƒ}| ¡Sr)rr7)rÚpr	r	r
Úgenerate_grammar€srN)r‹)r_rrrZGrammarrÚobjectrrjrWrr	r	r	r
Ú<module>sI
%
Back to Directory File Manager