Viewing File: /opt/alt/python35/lib64/python3.5/lib2to3/__pycache__/patcomp.cpython-35.opt-2.pyc



]@sdZddlZddlZddlmZmZmZmZmZm	Z	ddl
mZddl
mZej
jej
jedZGdd	d	eZd
dZGdd
d
eZdejdejdejddiZddZddZddZdS)z#Guido van Rossum <guido@python.org>N)driverliteralstokentokenizeparsegrammar)pytree)pygramzPatternGrammar.txtc@seZdZdS)PatternSyntaxErrorN)__name__
__module____qualname__rr,/opt/alt/python35/lib64/python3.5/patcomp.pyrsrc	csntjtjtjh}tjtj|j}x4|D],}|\}}}}}||kr:|Vq:WdS)N)	rNEWLINEINDENTDEDENTrgenerate_tokensioStringIOreadline)	inputskiptokensZ	quintupletypevaluestartendZ	line_textrrrtokenize_wrapper!s
rc@sXeZdZeddZddddZddZdd	d
ZddZdS)
PatternCompilercCs^tj||_tj|j|_tj|_tj|_	tj
|jdt|_dS)Nconvert)rZload_grammarrr
ZSymbolssymsZpython_grammarZ	pygrammarZpython_symbolspysymsZDriverpattern_convert)selfZgrammar_filerrr__init__-s
zPatternCompiler.__init__FcCst|}y|jj|d|}Wn:tjk
rd}ztt|WYdd}~XnX|r~|j||fS|j|SdS)Ndebug)rrZparse_tokensrZ
ParseErrorrstrcompile_node)r%rr'Z	with_treerrooterrrcompile_pattern8s%zPatternCompiler.compile_patternc
s6|jjjkr"|jd}|jjjkrfdd|jdddD}t|dkrz|dStjdd|Ddddd}|jS|jjj	krfd	d|jD}t|dkr|dStj|gdddd}|jS|jjj
krij|jdd}tj|}|jSd}|j}t|d
kr|djt
jkr|dj}|dd}d}t|dkr|djjjkr|d
}|dd}j||}|dk	r|j}	|	d}
|
jt
jkr]d}tj}nu|
jt
jkrd}tj}nQ|
jt
jkrj|	d}}t|	dkrj|	d
}n|dks|dkr|j}tj|ggd|d|}|dk	r,||_|jS)Nrcsg|]}j|qSr)r)).0ch)r%rr
<listcomp>Ps	z0PatternCompiler.compile_node.<locals>.<listcomp>rcSsg|]}|gqSrr)r-arrrr/Ss	minmaxcsg|]}j|qSr)r))r-r.)r%rrr/Ws	r6r6)rr"ZMatcherchildrenZAlternativeslenr	WildcardPatternoptimizeZAlternativeZNegatedUnit
compile_basicZNegatedPatternrEQUALrZRepeaterSTARZHUGEPLUSLBRACEget_intname)
r%nodeZaltspZunitspatternrAnodesrepeatr7Zchildr2r3r)r%rr)Ds^
)(


	(
+
	
!	zPatternCompiler.compile_nodeNcCs|d}|jtjkrJttj|j}tjt	||S|jtj
krX|j}|jr|tkrt
d||ddrt
dtjt|S|dkrd}n@|jdst|j|d}|dkrt
d||ddr?|j|djdg}nd}tj||Sna|jdkrx|j|dS|jd	kr|j|d}tj|ggd
dddSdS)NrzInvalid token: %rrzCan't have details for tokenany_zInvalid symbol: %r([r2r3)rrSTRINGr(rZ
evalStringrr	ZLeafPattern_type_of_literalNAMEisupper	TOKEN_MAPr
startswithgetattrr#r)r7ZNodePatternr9)r%rErFrBrrZcontent
subpatternrrrr;s8
		 zPatternCompiler.compile_basiccCs
t|jS)N)intr)r%rBrrrr@szPatternCompiler.get_int)	rr
r_PATTERN_GRAMMAR_FILEr&r,r)r;r@rrrrr +s
G#r rMrKNUMBERZTOKENcCs9|djrtjS|tjkr1tj|SdSdS)Nr)isalpharrMrZopmap)rrrrrLs
rLcCsW|\}}}}|s'||jkr=tj||d|Stj||d|SdS)Ncontext)Z
number2symbolr	ZNodeZLeaf)rZ
raw_node_inforrrWr7rrrr$sr$cCstj|S)N)r r,)rDrrrr,sr,)
__author__rosZpgen2rrrrrrr	r
pathjoindirname__file__rT	Exceptionrrobjectr rMrKrUrOrLr$r,rrrr<module>s".	
					
Back to Directory File Manager