
    *e                    t   d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddlmZ  ed          Ze G d d	e
                      Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )z2Classes for representing match statement patterns.    )annotations)TypeVar)trait)
ExpressionNameExprNodeRefExpr)PatternVisitorTc                      e Zd ZdZdZd	dZdS )
PatternzA pattern node. visitorPatternVisitor[T]returnr   c                <    t          dt          |                     )NzNot implemented)RuntimeErrortypeselfr   s     -lib/python3.11/site-packages/mypy/patterns.pyacceptzPattern.accept   s    ,d4jj999    Nr   r   r   r   )__name__
__module____qualname____doc__	__slots__r   r   r   r   r   r      s3        I: : : : : :r   r   c                  B     e Zd ZU dZded<   ded<   d fdZddZ xZS )	AsPatternzThe pattern <pattern> as <name>Pattern | NonepatternNameExpr | Nonenamer   Nonec                d    t                                                       || _        || _        d S N)super__init__r#   r%   )r   r#   r%   	__class__s      r   r*   zAsPattern.__init__$   s+    			r   r   r   r   c                ,    |                     |           S r(   )visit_as_patternr   s     r   r   zAsPattern.accept)       ''---r   )r#   r"   r%   r$   r   r&   r   r   r   r   r   __annotations__r*   r   __classcell__r+   s   @r   r!   r!      ss         ))      
. . . . . . . .r   r!   c                  8     e Zd ZU dZded<   d fdZdd
Z xZS )	OrPatternz'The pattern <pattern> | <pattern> | ...list[Pattern]patternsr   r&   c                V    t                                                       || _        d S r(   r)   r*   r6   r   r6   r+   s     r   r*   zOrPattern.__init__2   $     r   r   r   r   c                ,    |                     |           S r(   )visit_or_patternr   s     r   r   zOrPattern.accept6   r.   r   )r6   r5   r   r&   r   r/   r2   s   @r   r4   r4   -   se         11! ! ! ! ! !. . . . . . . .r   r4   c                  8     e Zd ZU dZded<   d
 fdZdd	Z xZS )ValuePatternzThe pattern x.y (or x.y.z, ...)r   exprc                V    t                                                       || _        d S r(   )r)   r*   r?   )r   r?   r+   s     r   r*   zValuePattern.__init__?   s$    			r   r   r   r   r   c                ,    |                     |           S r(   )visit_value_patternr   s     r   r   zValuePattern.acceptC       **4000r   )r?   r   r   r/   r2   s   @r   r>   r>   :   se         ))     1 1 1 1 1 1 1 1r   r>   c                  4     e Zd ZU ded<   d	 fdZd
dZ xZS )SingletonPatternbool | Nonevaluec                V    t                                                       || _        d S r(   )r)   r*   rG   )r   rG   r+   s     r   r*   zSingletonPattern.__init__K   s$    


r   r   r   r   r   c                ,    |                     |           S r(   )visit_singleton_patternr   s     r   r   zSingletonPattern.acceptO   s    ..t444r   )rG   rF   r   r   r   r   r0   r*   r   r1   r2   s   @r   rE   rE   G   s_              5 5 5 5 5 5 5 5r   rE   c                  8     e Zd ZU dZded<   d
 fdZdd	Z xZS )SequencePatternzThe pattern [<pattern>, ...]r5   r6   c                V    t                                                       || _        d S r(   r8   r9   s     r   r*   zSequencePattern.__init__X   r:   r   r   r   r   r   c                ,    |                     |           S r(   )visit_sequence_patternr   s     r   r   zSequencePattern.accept\   s    --d333r   )r6   r5   r   r/   r2   s   @r   rM   rM   S   se         &&! ! ! ! ! !4 4 4 4 4 4 4 4r   rM   c                  4     e Zd ZU ded<   d	 fdZd
dZ xZS )StarredPatternr$   capturec                V    t                                                       || _        d S r(   )r)   r*   rS   )r   rS   r+   s     r   r*   zStarredPattern.__init__e   s$    r   r   r   r   r   c                ,    |                     |           S r(   )visit_starred_patternr   s     r   r   zStarredPattern.accepti       ,,T222r   )rS   r$   r   rK   r2   s   @r   rR   rR   `   sa               3 3 3 3 3 3 3 3r   rR   c                  H     e Zd ZU ded<   ded<   ded<   d fdZddZ xZS )MappingPatternlist[Expression]keysr5   valuesr$   restc                    t                                                       t          |          t          |          k    sJ || _        || _        || _        d S r(   )r)   r*   lenr[   r\   r]   )r   r[   r\   r]   r+   s       r   r*   zMappingPattern.__init__r   sO    4yyCKK''''				r   r   r   r   r   c                ,    |                     |           S r(   )visit_mapping_patternr   s     r   r   zMappingPattern.accepty   rW   r   )r[   rZ   r\   r5   r]   r$   r   rK   r2   s   @r   rY   rY   m   sw              3 3 3 3 3 3 3 3r   rY   c                  V     e Zd ZU dZded<   ded<   ded<   ded<   d fd	ZddZ xZS )ClassPatternzThe pattern Cls(...)r	   	class_refr5   positionals	list[str]keyword_keyskeyword_valuesc                    t                                                       t          |          t          |          k    sJ || _        || _        || _        || _        d S r(   )r)   r*   r_   rd   re   rg   rh   )r   rd   re   rg   rh   r+   s        r   r*   zClassPattern.__init__   sa     	<  C$7$77777"&(,r   r   r   r   r   c                ,    |                     |           S r(   )visit_class_patternr   s     r   r   zClassPattern.accept   rC   r   )rd   r	   re   r5   rg   rf   rh   r5   r   r/   r2   s   @r   rc   rc   }   s         !!!!- - - - - -1 1 1 1 1 1 1 1r   rc   N)r   
__future__r   typingr   mypy_extensionsr   
mypy.nodesr   r   r   r	   mypy.visitorr
   r   r   r!   r4   r>   rE   rM   rR   rY   rc   r   r   r   <module>rq      s   8 8 " " " " " "       ! ! ! ! ! ! : : : : : : : : : : : : ' ' ' ' ' 'GCLL : : : : :d : : :. . . . . . . .(
. 
. 
. 
. 
. 
. 
. 
.
1 
1 
1 
1 
17 
1 
1 
1	5 	5 	5 	5 	5w 	5 	5 	5
4 
4 
4 
4 
4g 
4 
4 
4
3 
3 
3 
3 
3W 
3 
3 
33 3 3 3 3W 3 3 3 1 1 1 1 17 1 1 1 1 1r   