
    eE                    ^    d dl mZ d dlZddZ G d dej
                        Z G d d      Zy)	    )annotationsNc                   g }g }g }d}d}| D ]  }|j                  d      s|dz  }d }|D ]  }|r"|dk(  r
|dk7  r|dz  }|dk(  r|dk(  r||z  }d }'|dv r|}.|dv rK|dk7  r%|r|j                  |       n|j                  |       d}|dk(  r|j                  ||f       g }g }d}}|dk(  r|j                  |       d}d	}||z  }  |S )
NF 
$\>   r   r   >   r    :T)endswithappend)	linesrulestargetsdepsin_depsoutlineescapecs	            4/usr/lib/python3/dist-packages/mesonbuild/depfile.pyparser      s&   79EGDG
C "}}T"DLD 	AS=Q#X3JCT>a4iqKk!"9C(s+9LL'41 GD#Gcs#1HC=		"F L    c                      e Zd ZU ded<   y)Targetz
T.Set[str]r   N)__name__
__module____qualname____annotations__ r   r   r   r   =   s    
r   r   c                      e Zd ZddZdddZy)DepFilec           	         t        |      }i }|D ]R  \  }}|D ]H  }|j                  |t        t                           }|D ]  }|j                  j                  |        J T || _        y )N)r   )r   
setdefaultr   setr   adddepfile)	selfr   r   r&   r   r   targettdeps	            r   __init__zDepFile.__init__C   sr    e')$ 	$OWd! $&&vv35/AB $CFFJJsO$$	$
 r   Nc                J   t               }|s
t               }||v rg S |j                  |       | j                  j                  |      }|sg S |j	                  |j
                         |j
                  D ]#  }|j	                  | j                  ||             % t        |      S N)r$   r%   r&   getupdater   get_all_dependenciessorted)r'   namevisitedr   r(   r*   s         r   r0   zDepFile.get_all_dependenciesM   s    5eG7?ID!!$'IFKK ;; 	ACKK11#w?@	Ad|r   )r   T.Iterable[str]r-   )r2   strr3   zT.Optional[T.Set[str]]returnzT.List[str])r   r   r   r+   r0   r   r   r   r!   r!   B   s    r   r!   )r   r4   r6   z)T.List[T.Tuple[T.List[str], T.List[str]]])
__future__r   typingTr   
NamedTupler   r!   r   r   r   <module>r;      s-    # )VQ\\ 
 r   