Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 Cj3@s0dZddlmZdgZd/ddZddZdd Zd d Zd0d dZddZ ddZ d1ddZ Gddde Z GdddeZGdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$eZGd%d&d&eZGd'd(d(eZGd)d*d*eZGd+d,d,eZGd-d.d.eZdS)2z@ A parser for CSS selectors, based on the tinycss2 tokenizer. )parse_component_value_listparseNccszt|trt|}t|}|p i}t||V|jx>|j}|dkrLdS|dkrbt||Vq8t|d|jq8WdS)zYield tinycss2 selectors found in given ``input``. :param input: A string, or an iterable of tinycss2 component values. N,zunpexpected %s token.) isinstancestrr TokenStreamparse_selectorskip_whitespace_and_commentnext SelectorErrortype)input namespacestokensr r7/tmp/pip-build-_d5lkt3n/cssselect2/cssselect2/parser.pyr s  cCst||\}}x|j}x|jr0|jp,|}qW|dk rDt||S|j}|dks\|dkrft||S|dkr~|j}|jn|rd}n t||St||\}}t|||}qWdS)Nr>+~ )rrr)parse_compound_selectorskip_whitespace skip_commentSelectorpeekvaluer CombinedSelector)rrresultpseudo_elementZhas_whitespacer combinatorZcompoundrrrr#s$     rcCst||}|dk r|ng}x.t||\}}|dk s:|dkr|jdkr>|j }|dkr0d|fSt |dfSnd|dk r|jd kr|j }|d kr|rtt|dt||dfSt||jdfSnt|d|ndSdS)Nhash.identzExpected a class name, got %sz[] block:z&Expected a pseudo-element name, got %sbeforeafter first-line first-letterfunctionnotz nested :not()zunexpected %s token.)NN)r2r3r4r5)NN)rr Z is_identifierr IDSelectorrr ClassSelectorparse_attribute_selectorrcontent lower_valuePseudoClassSelector lower_nameparse_negationFunctionalPseudoClassSelector arguments)rr in_negationrr attrnamerrrr"[sP         r"cCs~t|j}t||}|dk r0|jdkr0t|St||dd\}}|j|dkrp|jdkrp|dk rpt|gSt|ddS)NT)rBz%:not() only accepts a simple selector)rrAr!r NegationSelectorr"rr )Znegation_tokenrrr%r'rrrrr?s    r?c Cs|jt||dd}|dkr4|j}t|d||\}}|j|j}|dkr^d}d}nn|dkr|j}|j|j|j}|dks|jdkr|dkrd n|j} t|d | |j}nt|d||j|j}|dk rt|d|jt||||S)NT) is_attributezexpected attribute name, got %s=~=|=^=$=*=r0stringNonez expected attribute value, got %sz,expected attribute selector operator, got %szexpected ], got %s)rGrHrIrJrKrL)r0rM)rr(r r rrr AttributeSelector) rrr+r r,r-roperatorrZ next_typerrrr:s<     r:cCsF|j}|dkrdS|jdkr|j}|j}|dkrZ|r>dn |jdd}||j|jffS|j|j|j}|dkrt|d|jnl|dkr|j}|j}|dkr|rt|d|j|jdddfS|jd}n|dkr|jd}ndS|j}|jdkr||j|jffS|dkr2| r2|dfSt|d|jdS)zReturn ``(namespace, local)`` for given tokens. Can also return ``None`` for a wildcard. The empty string for ``namespace`` means "no namespace". Nr0|zundefined namespace prefix: *zExpected local name, got %s)rr r getrr<r )rrrFrZ first_identr,r rrrr(sF   r(c@seZdZdZdS)r z3A specialized ``ValueError`` for invalid selectors.N)__name__ __module__ __qualname____doc__rrrrr sr c@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)rcCst||_g|_dS)N)iterrpeeked)selfrrrr__init__s zTokenStream.__init__cCs |jr|jjSt|jdSdS)N)rZpopr r)r[rrrr s zTokenStream.nextcCs$|js|jjt|jd|jdS)N)rZr#r r)r[rrrrszTokenStream.peekcCs6d}x,|j}|dks |j|kr"P|jd}qW|S)NFT)rr r )r[Z skip_typesfoundrrrrskipszTokenStream.skipcCs |jdgS)N whitespace)ra)r[rrrrszTokenStream.skip_whitespacecCs |jdgS)Ncomment)ra)r[rrrrszTokenStream.skip_commentcCs|jddgS)Nrcrb)ra)r[rrrr sz'TokenStream.skip_whitespace_and_commentN) rUrVrWr\r rrarrr rrrrrs rc@seZdZdddZddZdS)rNcCsD||_|dkr||_|j|_n"||_|j\}}}|||df|_dS)Nr^) parsed_treer specificity)r[treerabcrrrr\s  zSelector.__init__cCs(|jdkrt|jSd|j|jfSdS)Nz%r::%s)rreprrd)r[rrr__repr__&s  zSelector.__repr__)N)rUrVrWr\rkrrrrrs rc@s(eZdZddZeddZddZdS)rcCs||_||_||_dS)N)leftrright)r[rlrrmrrrr\.szCombinedSelector.__init__cCs2|jj\}}}|jj\}}}||||||fS)N)rlrerm)r[Za1Zb1c1Za2Zb2c2rrrre6szCombinedSelector.specificitycCsd|j|j|jfS)Nz%r%s%r)rlrrm)r[rrrrk<szCombinedSelector.__repr__N)rUrVrWr\propertyrerkrrrrr-s rc@s,eZdZdZddZeddZddZdS) r$z.Aka. sequence of simple selectors, in Level 3.cCs ||_dS)N)r&)r[r&rrrr\BszCompoundSelector.__init__cCs,|jr$ttttdd|jDSdSdS)Ncss|] }|jVqdS)N)re).0selrrr Ksz/CompoundSelector.specificity..r)rrr)r&tuplemapsumzip)r[rrrreEszCompoundSelector.specificitycCsdjtt|jS)NrR)joinrurjr&)r[rrrrkOszCompoundSelector.__repr__N)rUrVrWrXr\rprerkrrrrr$@s r$c@s eZdZdZddZddZdS) r)rr^cCs|\|_|_dS)N)r-Zlower_local_name)r[r-rrrr\VszLocalNameSelector.__init__cCs|jS)N)r-)r[rrrrkYszLocalNameSelector.__repr__N)rrr^)rUrVrWrer\rkrrrrr)Ssr)c@s eZdZdZddZddZdS)r*rcCs ||_dS)N)r,)r[r,rrrr\`szNamespaceSelector.__init__cCs|jdkrdSd|jSdS)NrRrQz{%s}|)r,)r[rrrrkes zNamespaceSelector.__repr__N)rrr)rUrVrWrer\rkrrrrr*]sr*c@s eZdZdZddZddZdS) r8r^rcCs ||_dS)N)r0)r[r0rrrr\oszIDSelector.__init__cCs d|jS)N#)r0)r[rrrrkrszIDSelector.__repr__N)r^rr)rUrVrWrer\rkrrrrr8lsr8c@s eZdZdZddZddZdS) r9rr^cCs ||_dS)N) class_name)r[rzrrrr\yszClassSelector.__init__cCs d|jS)Nr/)rz)r[rrrrk|szClassSelector.__repr__N)rr^r)rUrVrWrer\rkrrrrr9vsr9c@s eZdZdZddZddZdS) rOrr^cCs"||_|\|_|_||_||_dS)N)r,rDr>rPr)r[r,rDrPrrrrr\s zAttributeSelector.__init__cCs.|jdkrdnd|j}d||j|j|jfS)Nz*|z{%s}z [%s%s%s%r])r,rDrPr)r[r,rrrrks zAttributeSelector.__repr__N)rr^r)rUrVrWrer\rkrrrrrOsrOc@s eZdZdZddZddZdS) r=rr^cCs ||_dS)N)rD)r[rDrrrr\szPseudoClassSelector.__init__cCs d|jS)Nr1)rD)r[rrrrkszPseudoClassSelector.__repr__N)rr^r)rUrVrWrer\rkrrrrr=sr=c@s eZdZdZddZddZdS) r@rr^cCs||_||_dS)N)rDrA)r[rDrArrrr\sz&FunctionalPseudoClassSelector.__init__cCsd|jt|jfS)Nz:%s%r)rDrtrA)r[rrrrksz&FunctionalPseudoClassSelector.__repr__N)rr^r)rUrVrWrer\rkrrrrr@sr@c@seZdZddZdS)rEcCsdtj|S)Nz:not(%r))r$rk)r[rrrrkszNegationSelector.__repr__N)rUrVrWrkrrrrrEsrE)N)F)F)rXZtinycss2r__all__rrrr!r"r?r:r( ValueErrorr objectrrrr$r)r*r8r9rOr=r@rErrrrs.   0$ 1$