§
    2@Äju  ã                   ó   — d dl Z d dlZd„ ZdS )é    Nc                 óì  ‡— d„ }d„ Šˆfd„} || ¦  «                              d¦  «        \  }}}t           ||¦  «        ¦  «        }t           ||¦  «        ¦  «        }t          ¦   «         }t          ¦   «         }	|D ]}
|t          |
¦  «        z  }Œ|D ]}
|	t          |
¦  «        z  }	Œ|	                     |¦  «        }|r2t	          dd                     t          |¦  «        ¦  «        z  ¦  «        ‚||fS )z‹Parse generalized ufunc signature.

    NOTE: ',' (COMMA) is a delimiter; not separator.
          This means trailing comma is legal.
    c                 ó@   — d                      d„ | D ¦   «         ¦  «        S )NÚ c              3   ó6   K  — | ]}|t           j        v¯|V — Œd S ©N)ÚstringÚ
whitespace)Ú.0Úcs     úHC:\Projects\Historical\venv\Lib\site-packages\numba/np/ufunc/sigparse.pyú	<genexpr>z3parse_signature.<locals>.stripws.<locals>.<genexpr>   s/   è è € ÐBÐB˜Q qµÔ0AÐ'AÐ'A�qÐ'AÐ'AÐ'AÐ'AÐBÐBó    )Újoin)Úss    r   Ústripwsz parse_signature.<locals>.stripws   s#   € Ø�wŠwÐBÐB !ÐBÑBÔBÑBÔBÐBr   c                 óR   ‡ ‡— ˆ fd„} |¦   «         Št          j        ˆfd„¦  «        S )Nc               3   ó   •K  — ‰ V — d S r   © )Úsrcs   €r   Úreadlinez4parse_signature.<locals>.tokenizer.<locals>.readline   s   øè è € ØˆIˆIˆIˆIˆIr   c                  ó"   •— t          ‰ ¦  «        S r   )Únext)Úgens   €r   ú<lambda>z4parse_signature.<locals>.tokenizer.<locals>.<lambda>   s   ø€ µ°S±	´	€ r   )ÚtokenizeÚgenerate_tokens)r   r   r   s   ` @r   Ú	tokenizerz"parse_signature.<locals>.tokenizer   sC   øø€ ð	ð 	ð 	ð 	ð 	àˆh‰jŒjˆÝÔ'Ð(9Ð(9Ð(9Ð(9Ñ:Ô:Ð:r   c              3   óD  •K  —  ‰| ¦  «        }	 t          |¦  «        }|d         dk    rÁg }	 t          |¦  «        }|d         dk    rnX|d         t          j        k    r|                     |d         ¦  «         n%|d         dk    rŒ\t	          d|d         z  ¦  «        ‚Œtt          |¦  «        V — t          |¦  «        }|d         dk    rŒÀt          j        |d         ¦  «        rd S n4t          j        |d         ¦  «        rd S t	          d|d         z  ¦  «        ‚�Œ)NTé   ú(ú)r   ú,zbad token in signature "%s")r   r   ÚNAMEÚappendÚ
ValueErrorÚtupleÚISEOF)r   ÚtokgenÚtokÚsymbolsr   s       €r   Úparsezparse_signature.<locals>.parse   s9  øè è € Ø�˜3‘”ˆð	IÝ�v‘,”,ˆCØ�1Œv˜Š}ˆ}Ø�ð	QÝ˜v™,œ,�CØ˜1”v ’}�}ØØ˜Qœ¥8¤=Ò0Ð0ØŸš s¨1¤vÑ.Ô.Ð.Ð.Ø˜Qœ 3š˜Ø å(Ð)FÈÈQÌÑ)OÑPÔPÐPð	Qõ ˜G‘n”nÐ$Ð$Ð$Ý˜6‘l”l�Ø�q”6˜S’=�=ØÝ”^ C¨¤FÑ+Ô+ð Ø�Eðå”  A¤Ñ'Ô'ð IØ�å Ð!>ÀÀQÄÑ!GÑHÔHÐHñ/	Ir   z->zundefined output symbols: %sr"   )Ú	partitionÚlistÚsetÚ
differenceÚ	NameErrorr   Úsorted)Úsigr   r+   ÚinsÚ_ÚoutsÚinputsÚoutputsÚisymÚosymÚgrpÚdiffr   s               @r   Úparse_signaturer<      s/  ø€ ðCð Cð Cð;ð ;ð ;ðIð Ið Ið Ið Ið6 �7˜3‘<”<×)Ò)¨$Ñ/Ô/�L€CˆˆDÝ�%�%˜‘*”*ÑÔ€FÝ�5�5˜‘;”;ÑÔ€Gõ ‰5Œ5€DÝ‰5Œ5€DØð ð ˆØ•�C‘”ÑˆˆØð ð ˆØ•�C‘”Ñˆˆà�?Š?˜4Ñ Ô €DØð QÝÐ6¸¿ºÅ&ÈÁ,Ä,Ñ9OÔ9OÑOÑPÔPÐPà�7ˆ?Ðr   )r   r   r<   r   r   r   ú<module>r=      s0   ðØ €€€Ø €€€ð:ð :ð :ð :ð :r   