
    Mh                     V    d dl Z ddlmZmZ d Zd Zd Zd Z e j        d          Z	dS )	    N   )_next_significant_to_token_iteratorc           	         t          | d          }t          |          }|dS |j        }|dk    r|j        rt	          |d|j                  S |dk    r|j        r|j        }|dk    rt          ||j                  S |dk    rt          ||j        d	          S t          
                    |          }|r6t	          ||j        t          |                    d
                              S dS |dk    rA|j        }|dk    rt	          |dd          S |dk    rt	          |dd
          S |dk    rt          |d
          S |dk    rt          |d	          S |dk    rt          |d
d	          S |dk    rt          |d	d	          S |d         dk    rWt          
                    |d
d                   }|r1t	          |d	t          |                    d
                              S dS t          
                    |          }|r1t	          |d
t          |                    d
                              S dS |dk    rt          |          }|j        dk    r|j        }|dk    rt          |d
          S |dk    rt          |d
d	          S t          
                    |          }|r5t	          |d
t          |                    d
                              S dS dS dS )aF  Parse `<An+B> <https://drafts.csswg.org/css-syntax-3/#anb>`_,
    as found in `:nth-child()
    <https://drafts.csswg.org/selectors/#nth-child-pseudo>`_
    and related Selector pseudo-classes.

    Although tinycss2 does not include a full Selector parser,
    this bit of syntax is included as it is particularly tricky to define
    on top of a CSS tokenizer.

    :type input: :obj:`str` or :term:`iterable`
    :param input: A string or an iterable of :term:`component values`.
    :returns:
        A ``(a, b)`` tuple of integers, or :obj:`None` if the input is invalid.

    T)skip_commentsNnumberr   	dimensionnzn-r   identeven   oddz-nz-n--+)r   r   type
is_integer	parse_end	int_value
lower_unitparse_bparse_signless_bN_DASH_DIGITS_REmatchintgrouplower_valuenext)inputtokenstoken
token_typeunitr   r   s          L/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tinycss2/nth.py	parse_nthr%      s      T:::Ff%%E}JX%"2EO444	{	"	"u'7	"3;;65?333T\\#FEOR@@@$**400E O #ekk!nn:M:MNNNO O	w		!F??VQ***e^^VQ***c\\61%%%d]]62&&&d]]#FAr222e^^#FB3331X__$**5955E B SQ-@-@AAAB B %**511E A CA,?,?@@@A A	#V:  %E||vq)))$'2666(..u55 E$VQEKKNN0C0CDDD 
  E E    c                    t          |           }||dfS |dk    rt          | |d          S |dk    rt          | |d          S |j        dk    r,|j        r'|j        d         dv rt          | ||j                  S d S d S d S )Nr   r   r   r   r   r   -+)r   r   r   r   representationr   r   )r    ar!   s      r$   r   r   K   s    f%%E}1v	#1---	#2...
*
 
 U%5
 

q
!T
)
)EO444 !
 
 
 
)
)r&   c                     t          |           }|j        dk    r/|j        r*|j        d         dvrt	          | |||j        z            S d S d S d S )Nr   r   r(   )r   r   r   r)   r   r   )r    r*   b_signr!   s       r$   r   r   X   sd    f%%E
h5#3 #4//FU_$<=== 	//r&   c                 ,    t          |           ||fS d S )N)r   )r    r*   bs      r$   r   r   _   s!      (1v )(r&   z^n(-[0-9]+)$)
reparserr   r   r%   r   r   r   compiler    r&   r$   <module>r3      s    				 9 9 9 9 9 9 9 9BE BE BEJ
5 
5 
5> > >  
 2:n--   r&   