a
    ¥Q•h   ã                   @   sF   d dl Z ddlmZmZ dd„ Zdd„ Zdd	„ Zd
d„ Ze  d¡Z	dS )é    Né   )Ú_next_significantÚ_to_token_iteratorc                 C   s  t | dd�}t|ƒ}|du r dS |j}|dkrB|jrBt|d|jƒS |dkrª|jrª|j}|dkrjt||jƒS |dkr€t||jd	ƒS t	 
|¡}|r¦t||jt| d
¡ƒƒS �nf|dk�rœ|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�r6t|d	d	ƒS |d dk�rtt	 
|d
d… ¡}|�ršt|d	t| d
¡ƒƒS n&t	 
|¡}|�rt|d
t| d
¡ƒƒS nt|dk�rt|ƒ}|jdk�r|j}|dk�rÔt|d
ƒS |dk�rêt|d
d	ƒS t	 
|¡}|�rt|d
t| 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   ÚidentZevené   Z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
   © r    úE/var/www/sistema_ama/venv/lib/python3.9/site-packages/tinycss2/nth.pyÚ	parse_nth   s`    













r"   c                 C   sp   t | ƒ}|d u r|dfS |dkr,t| |dƒS |dkr@t| |dƒS |jdkrl|jrl|jd dv rlt| ||jƒS d S )Nr   r   r   r   r	   r   ú-+)r   r   r   r   Úrepresentationr   r   )r   Úar   r    r    r!   r   K   s    ÿr   c                 C   s<   t | ƒ}|jdkr8|jr8|jd dvr8t| |||j ƒS d S )Nr   r   r#   )r   r   r   r$   r   r   )r   r%   Zb_signr   r    r    r!   r   X   s
    ÿr   c                 C   s   t | ƒd u r||fS d S )N)r   )r   r%   Úbr    r    r!   r   _   s    r   z^n(-[0-9]+)$)
ÚreÚparserr   r   r"   r   r   r   Úcompiler   r    r    r    r!   Ú<module>   s   E