MINI MINI MANI MO

Path : /usr/lib64/python3.6/lib2to3/pgen2/__pycache__/
File Upload :
Current File : //usr/lib64/python3.6/lib2to3/pgen2/__pycache__/pgen.cpython-36.opt-2.pyc

3


 \5@sdddlmZmZmZGdddejZGdddeZGdddeZGdd	d	eZ	dddZ
d
S))grammartokentokenizec@seZdZdS)PgenGrammarN)__name__
__module____qualname__r	r	*/usr/lib64/python3.6/lib2to3/pgen2/pgen.pyrsrc@seZdZd&ddZddZddZdd	Zd
dZdd
ZddZ	ddZ
ddZddZddZ
ddZddZddZddZd'd d!Zd"d#Zd$d%ZdS)(ParserGeneratorNcCsld}|dkrt|}|j}||_||_tj|j|_|j|j	\|_
|_|dk	rZ|i|_|j
dS)N)openclosefilenamestreamrgenerate_tokensreadline	generatorgettokenparsedfasstartsymbolfirstaddfirstsets)selfrrZclose_streamr	r	r
__init__szParserGenerator.__init__cCs*t}t|jj}|j|j|j|jd|jx.|D]&}dt|j	}||j	|<||j
|<q<Wx|D]}|j|}g}xl|D]d}g}x6t|jj
D]$\}	}
|j|j||	|j|
fqW|jr|jd|j|f|j|qW|jj|||j||f|j|j	|<qlW|j	|j|_|S)N)rlistrkeyssortremoverinsertlen
symbol2numberZ
number2symbolsortedarcsitemsappend
make_labelindexisfinalstates
make_firststart)rcnamesnameidfar+stater%labelnextr	r	r
make_grammars.




  zParserGenerator.make_grammarcCs8|j|}i}x$t|D]}|j||}d||<qW|S)Nr)rr$r()rr.r0Zrawfirstrr4ilabelr	r	r
r,4s
zParserGenerator.make_firstcCs&t|j}|djr||jkrZ||jkr4|j|S|jj|j|df||j|<|Sn>tt|d}||jkrz|j|S|jj|df||j|<|Snt	|}|djr||j
kr|j
|S|jjtj|f||j
|<|Sn>tj
|}||jkr|j|S|jj|df||j|<|SdS)Nr)r"Zlabelsisalphar#Zsymbol2labelr'getattrrtokensevalkeywordsNAMErZopmap)rr.r4r7Zitokenvaluer	r	r
r(=s6













zParserGenerator.make_labelcCs<t|jj}|jx |D]}||jkr|j|qWdS)N)rrrrr	calcfirst)rr/r0r	r	r
rks


zParserGenerator.addfirstsetsc	Cs
|j|}d|j|<|d}i}i}x|jjD]x\}}||jkr||jkrl|j|}|dkrtd|n|j||j|}|j||||<q0d||<|di||<q0Wi}	xJ|jD]>\}}
x4|
D],}||	krtd||||	|f||	|<qWqW||j|<dS)Nrzrecursion for rule %rrzArule %s is ambiguous; %s is in the first sets of %s as well as %s)rrr%r&
ValueErrorr?update)rr0r2r3ZtotalsetZoverlapcheckr4r5fsetZinverseZitsfirstZsymbolr	r	r
r?ss2









zParserGenerator.calcfirstc	Csi}d}x|jtjkrx|jtjkr.|jqW|jtj}|jtjd|j\}}|jtj|j	||}t
|}|j|t
|}|||<|dkr
|}q
W||fS)N:)typer	ENDMARKERNEWLINErexpectr=OP	parse_rhsmake_dfar"simplify_dfa)	rrrr0azr2ZoldlenZnewlenr	r	r
rs"
zParserGenerator.parsecsfdd}fddt|||g}x|D]}i}x<|jD]2}x,|jD]"\}}	|dk	rJ|	|j|iqJWq>WxRt|jD]B\}}
x,|D]}|j|
krPqWt|
|}|j||j||qWq.W|S)Ncsi}|||S)Nr	)r3base)
addclosurer	r
closures
z)ParserGenerator.make_dfa.<locals>.closurecs>||krdSd||<x$|jD]\}}|dkr||qWdS)Nr)r%)r3rNr4r5)rOr	r
rOsz,ParserGenerator.make_dfa.<locals>.addclosure)DFAStatenfasetr%
setdefaultr$r&r'addarc)rr-finishrPr+r3r%Znfastater4r5rRstr	)rOr
rJs"




zParserGenerator.make_dfac
Cstd||g}xt|D]\}}td|||kr4dp6dx^|jD]T\}}||kr^|j|}	nt|}	|j||dkrtd|	qBtd||	fqBWqWdS)NzDump of NFA forz  Statez(final)z	    -> %dz    %s -> %d)print	enumerater%r)r"r')
rr0r-rUZtodor1r3r4r5jr	r	r
dump_nfas

zParserGenerator.dump_nfacCsltd|x\t|D]P\}}td||jr,dp.dx0t|jjD]\}}td||j|fqBWqWdS)NzDump of DFA forz  Statez(final)rWz    %s -> %d)rXrYr*r$r%r&r))rr0r2r1r3r4r5r	r	r
dump_dfas

zParserGenerator.dump_dfacCs~d}xt|rxd}xft|D]Z\}}xPt|dt|D]:}||}||kr4||=x|D]}|j||qTWd}Pq4WqWqWdS)NTFr)rYranger"
unifystate)rr2Zchangesr1Zstate_irZZstate_jr3r	r	r
rKs
zParserGenerator.simplify_dfacCs|j\}}|jdkr||fSt}t}|j||j|x6|jdkrt|j|j\}}|j||j|q@W||fSdS)N|)	parse_altr>NFAStaterTr)rrLrMZaaZzzr	r	r
rIs



zParserGenerator.parse_rhscCsP|j\}}x:|jdks*|jtjtjfkrF|j\}}|j||}qW||fS)N([)rbrc)
parse_itemr>rDrr=STRINGrT)rrLbr.dr	r	r
r`
s
zParserGenerator.parse_altcCs|jdkr>|j|j\}}|jtjd|j|||fS|j\}}|j}|dkr`||fS|j|j||dkr||fS||fSdS)Nrc]+*)rirj)r>rrIrGrrHrT
parse_atom)rrLrMr>r	r	r
rds


zParserGenerator.parse_itemcCs|jdkr4|j|j\}}|jtjd||fS|jtjtjfkrpt	}t	}|j
||j|j||fS|jd|j|jdS)Nrb)z+expected (...) or NAME or STRING, got %s/%s)r>rrIrGrrHrDr=rerarTraise_error)rrLrMr	r	r
rk(s
zParserGenerator.parse_atomcCsD|j|ks|dk	r2|j|kr2|jd|||j|j|j}|j|S)Nzexpected %s/%s, got %s/%s)rDr>rmr)rrDr>r	r	r
rG9szParserGenerator.expectcCsJt|j}x"|dtjtjfkr,t|j}qW|\|_|_|_|_|_	dS)Nr)
r5rrCOMMENTNLrDr>Zbeginendline)rtupr	r	r
rAs
zParserGenerator.gettokencGs^|r8y||}Wn&dj|gttt|}YnXt||j|jd|jd|jfdS)N rr)joinrmapstrSyntaxErrorrrprq)rmsgargsr	r	r
rmHs zParserGenerator.raise_error)N)N)rrrrr6r,r(rr?rrJr[r\rKrIr`rdrkrGrrmr	r	r	r
r
s$
	.$

rc@seZdZddZdddZdS)racCs
g|_dS)N)r%)rr	r	r
rSszNFAState.__init__NcCs|jj||fdS)N)r%r')rr5r4r	r	r
rTVszNFAState.addarc)N)rrrrrTr	r	r	r
raQsrac@s0eZdZddZddZddZddZd	Zd	S)
rQcCs||_||k|_i|_dS)N)rRr*r%)rrRfinalr	r	r
r]s
zDFAState.__init__cCs||j|<dS)N)r%)rr5r4r	r	r
rTeszDFAState.addarccCs.x(|jjD]\}}||kr||j|<qWdS)N)r%r&)roldnewr4r5r	r	r
r^kszDFAState.unifystatecCsX|j|jkrdSt|jt|jkr(dSx*|jjD]\}}||jj|k	r4dSq4WdS)NFT)r*r"r%r&get)rotherr4r5r	r	r
__eq__pszDFAState.__eq__N)rrrrrTr^r__hash__r	r	r	r
rQ[s
rQGrammar.txtcCst|}|jS)N)rr6)rpr	r	r
generate_grammarsrN)r)rWrrrZGrammarrobjectrrarQrr	r	r	r
<module>sI
%

OHA YOOOO