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



]&@sddlmZddlmZmZddlmZmZeZeZ	ej
ZeZdZ
dZdZGdddeZdd	d
ZddZd
dZdS))pytree)grammartoken)pattern_symbolspython_symbolsc@sReZdZddddZddZddZdd	Zd
dZdS)MinNodeNcCsC||_||_g|_d|_d|_g|_g|_dS)NF)typenamechildrenleafparentalternativesgroup)selfr
rr./opt/alt/python35/lib64/python3.5/btm_utils.py__init__s						zMinNode.__init__cCst|jdt|jS)N )strr
r)rrrr__repr__szMinNode.__repr__cCsO|}g}x<|rJ|jtkr|jj|t|jt|jkr|t|jg}g|_|j}qn|j}d}P|jtkr|j	j|t|j	t|jkrt
|j	}g|_	|j}qn|j}d}P|jtjkr.|j
r.|j|j
n|j|j|j}qW|S)N)r
TYPE_ALTERNATIVESrappendlenrtupler
TYPE_GROUPrget_characteristic_subpatterntoken_labelsNAMEr)rnodesubprrrleaf_to_root!s8							
zMinNode.leaf_to_rootcCs1x*|jD]}|j}|r
|Sq
WdS)N)leavesr")rlr!rrrget_linear_subpatternKszMinNode.get_linear_subpatternccs5x |jD]}|jEdHq
W|js1|VdS)N)rr#)rchildrrrr#`s	zMinNode.leaves)__name__
__module____qualname__rrr"r%r#rrrrr	s
	*r	Nc
Csd}|jtjkr%|jd}|jtjkrt|jdkret|jd|}qtdt}xa|jD]J}|jj	|drq~t||}|dk	r~|jj
|q~Wn	|jtjkrit|jdkrPtdt}x6|jD]+}t||}|r|jj
|qW|jsfd}qt|jd|}no|jtj
krt|jdtjr|jdjdkrt|jd|St|jdtjr|jdjdks.t|jdkr2t|jddr2|jdjdkr2dSd}d}d}d	}d}	d	}
x|jD]}|jtjkrd	}|}n9|jtjkrd}|}	n|jtjkr|}t|dr`|jd
kr`d}
q`W|
r)|jd}t|dr6|jdkr6|jd}n
|jd}|jtjkr|jdkritdt}q9tt|jrtdtt|j}q9tdtt|j}n|jtjkr|jjd
}|tkrtdt|}q9tdtjd|}n!|jtjkr9t||}|r}|	jdjdkr^d}n|	jdjdkrwnt|r|dk	rxF|jddD]1}t||}|dk	r|jj
|qW|r||_|S)Nrr
r([valueTF=rany'r*+)r
symsZMatcherrZAlternativesrreduce_treer	rindexrZAlternativerZUnit
isinstancerZLeafr-hasattrZDetailsZRepeaterrrTYPE_ANYgetattrpysymsSTRINGstriptokensNotImplementedErrorr)
r rZnew_noder&Zreducedr
Zdetails_nodeZalternatives_nodeZhas_repeaterZ
repeater_nodeZhas_variable_nameZ	name_leafrrrrr5gs
				


		r5cs/t|ts|St|dkr-|dSg}g}dddddgg}dx|D]}tt|d	d
ratt|fdd
r|j|qatt|fdd
r|j|qa|j|qaW|r|}n|r|}n|r|}t|d
tS)Nrr*inforifnotNonez[]().,:cSst|tkS)N)r
r)xrrr<lambda>sz/get_characteristic_subpattern.<locals>.<lambda>cst|to|kS)N)r7r)rE)common_charsrrrFscst|to|kS)N)r7r)rE)common_namesrrrFskey)r7listrr/rec_testrmax)ZsubpatternsZsubpatterns_with_namesZsubpatterns_with_common_namesZsubpatterns_with_common_chars
subpatternr)rGrHrrs2
				rccsJxC|D];}t|ttfr7t||EdHq||VqWdS)N)r7rJrrK)ZsequenceZ	test_funcrErrrrKs
rKr3)rZpgen2rrZpygramrrr4r;Zopmapr>rr9rrobjectr	r5rrKrrrr<module>s	W%
Back to Directory File Manager