
    Lc                     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          ,lib/python3.11/site-packages/tinycss2/nth.py	parse_nthr%      sb      T:::Ff%%E JX -E%"2 -EEO444	{	" +Eu'7 +E3; 	O65?333T\ 	O#FEOR@@@$**400E O #ekk!nn:M:MNNNO O	w	 !E!F? 	AVQ***e^ 	AVQ***c\ 	A61%%%d] 	A62&&&d] 	A#FAr222e^ 		A#FB3331X_ 	A$**5955E B SQ-@-@AAAB B %**511E A CA,?,?@@@A A	# EV:  		E%E| Evq)))$ E'2666(..u55 E$VQEKKNN0C0CDDDE E		E 		E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 51v	# 51---	# 52...
*
  5U%5 5

q
!T
)5EO4445 5 5 5 5 5r&   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   st    f%%E
h >5#3 >$Q'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&   