bBFjddlmZddlmZmZmZGddeZGddeZGdd Z Gd d Z Gd d Z GddeZ dS))contextmanager)DictListAnyc*eZdZUeed<eed<dZdS)_NormalizerMetarule_value_classesrule_type_classesc\t||||}i|_i|_|SN)type__new__r r )clsnamebasesdctnew_clss >C:\PYTHON\_runtimes\venv\Lib\site-packages\parso/normalizer.pyrz_NormalizerMeta.__new__ s.,,sD%55%'"$&!N)__name__ __module__ __qualname__r__annotations__rrrrrs=rrceZdZUiZeeeefed<iZ eeeefed<dZ dZ dZ dZ edZdZd Zd Zd Zd Zed dd dddZd S) Normalizer_rule_type_instances_rule_value_instancesc||_||_g|_|d|_|d|_dS)Nr r )grammar_configissues_instantiate_rulesrr)selfr configs r__init__zNormalizer.__init__sK   $($;$;z1Normalizer._instantiate_rules..!s!CCC(xx~~CCCr)r mrogetattritems setdefaultextend)r$attrrbase rules_maptype_ rule_classesnews` rr#zNormalizer._instantiate_rulessJJNN$$ 6 6DdB//I'0'8'8 6 6#|CCCClCCCub))005555 6 rc||||}||Sr ) initializevisitfinalize)r$nodevalues rwalkzNormalizer.walk%s7  4    rc |j}|5dfd|DcdddS#1swxYwYdS#t$r|cYSwxYw)Nc3BK|]}|VdSr )r9)r)childr$s r z#Normalizer.visit..2s/GGUtzz%00GGGGGGr)children visit_nodejoinAttributeError visit_leaf)r$r;rCs` rr9zNormalizer.visit+s H}H&& H HwwGGGGhGGGGG H H H H H H H H H H H H H H H H H H ) ) )??4(( ( ( ( )s"A!A  AAA<;A<c#<K||dVdSr )_check_type_rulesr$r;s rrDzNormalizer.visit_node4s' t$$$ rcv|j|jgD]}||dSr )rgetr feed_node)r$r;rules rrIzNormalizer._check_type_rules9sE-11$)R@@ ! !D NN4  ! !rc|||j|jgD]}|||j|jzSr )rIrrLr<rMprefix)r$leafrNs rrGzNormalizer.visit_leaf=s^ t$$$.224:rBB ! !D NN4 {TZ''rcdSr rrJs rr8zNormalizer.initializeE rcdSr rr$s rr:zNormalizer.finalizeHrSrcnt|||}||jvr|j|dS)NT)Issuer"append)r$r;codemessageissues r add_issuezNormalizer.add_issueKs;dD'**  # # K  u % % %trNr)r<valuesr typesctt||||sstdfd}|S)z Use it as a class decorator:: normalizer = Normalizer('grammar', 'config') @normalizer.register_rule(value='foo') class MyRule(Rule): error_code = 42 Nz%You must register at least something.cD]0}j|g|1D]0}j|g|1|Sr )r r/rXr )r*vtrr^r]s r decoratorz+Normalizer.register_rule..decoratores~ J J&11!R88??IIII I I%00B77>>xHHHHOr)listrX ValueError)rr<r]r r^rcs` ` ` r register_rulezNormalizer.register_ruleQsfU    MM%   LL    Fe FDEE E       r)rrrrrstrrr rrr&r#r=r9rrDrIrGr8r:r\ classmethodrfrrrrrs(24$sDJ/444354T$Z0555SSS HHH^!!!(((       $($b[rr) metaclassceZdZeZdZdS)NormalizerConfigc.|||Sr )normalizer_class)r$r s rcreate_normalizerz"NormalizerConfig.create_normalizerrs$$Wd333rN)rrrrrmrnrrrrkrkos)!44444rrkc,eZdZdZdZdZdZdZdS)rWcX||_ ||_ |j|_ |j|_dSr )rYrZ start_posend_posr$r;rYrZs rr&zIssue.__init__ws;     | rcB|j|jko|j|jkSr )rqrYr$others r__eq__z Issue.__eq__s~0LTY%*5LLrc.|| Sr )rwrus r__ne__z Issue.__ne__s;;u%%%%rc8t|j|jfSr )hashrYrqrUs r__hash__zIssue.__hash__sTY/000rc2d|jjd|jdS)N) __class__rrYrUs r__repr__zIssue.__repr__s !^444diii@@rN)rrrr&rwryr|rrrrrWrWvsg$$$ MMM&&&111AAAAArrWcJeZdZUeed<eed<dZdZdZdZ d dZ d Z dS) RulerYrZc||_dSr ) _normalizer)r$ normalizers rr&z Rule.__init__s%rctr )NotImplementedErrorrJs ris_issuez Rule.is_issues!###rc|Sr rrJs rget_nodez Rule.get_nodes rc:||j}|td|S)Nz$The message on the class is not set.)rZre)r$rZr;s r _get_messagezRule._get_messages' ?lG !GHHHrNc||j}|td|||}|j|||dS)Nz'The error code on the class is not set.)rYrerrr\rss rr\zRule.add_issuesX <9D| !JKKK##GT22 ""4w77777rc||r,||}||dSdSr )rrr\)r$r; issue_nodes rrMzRule.feed_nodesI ==   't,,J NN: & & & & & ' 'r)NN) rrrintrrgr&rrrr\rMrrrrrs III LLL&&&$$$8888'''''rrc.eZdZdZfdZfdZxZS)RefactoringNormalizerc||_dSr )_node_to_str_map)r$node_to_str_maps rr&zRefactoringNormalizer.__init__s /rc |j|S#t$r$t|cYSwxYwr )rKeyErrorsuperr9)r$r;rs rr9zRefactoringNormalizer.visitsM '(. . ' ' '77==&& & & & ' +>>c |j|S#t$r$t|cYSwxYwr )rrrrG)r$rQrs rrGz RefactoringNormalizer.visit_leafsO ,(. . , , ,77%%d++ + + + ,r)rrrr&r9rG __classcell__)rs@rrrs`000''''' ,,,,,,,,,rrN) contextlibrtypingrrrr rrrkrWrrrrrrsM%%%%%%""""""""""d\\\\\?\\\\~44444444AAAAAAAA