o
    ‡ÎÖa§  ã                   @   sb   d Z ddlZddlmZmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZ dgZG dd„ deƒZdS )zÍ
    pygments.lexers.nix
    ~~~~~~~~~~~~~~~~~~~

    Lexers for the NixOS Nix language.

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚinclude)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚLiteralÚNixLexerc                   @   sð  e Zd ZdZdZddgZdgZdgZej	ej
B Zg d¢Zg d¢Zg d	¢Zg d
¢Zdejfdejdfdefdd dd„ eD ƒ¡ efdd dd„ eD ƒ¡ ejfdejfdd dd„ eD ƒ¡ efdejfdd dd„ eD ƒ¡ efdejfdejdfdejdfde fde fde fd ej!fd!efgd"ejfdejd#fd$ejd%fd&ejfgd'ej"fd(ej"fd)ej"fd*ej"fd+ej"fdejd%fd,ej#d-fd.ejfgd/ej"fd0ej"fd1ej"fdejd%fd,ej#d-fd2ejfgd3ej#d%fd,ej#d#fe$d4ƒgd5œZ%d6d7„ Z&d8S )9r   zU
    For the `Nix language <http://nixos.org/nix/>`_.

    .. versionadded:: 2.0
    ÚNixÚnixosÚnixz*.nixz
text/x-nix)
ÚrecÚwithÚletÚinÚinheritÚassertÚifÚelseÚthenz...)ÚimportÚabortÚ
baseNameOfÚdirOfÚisNullÚbuiltinsÚmapÚremoveAttrsÚthrowÚtoStringÚ
derivation)z++ú+ú?Ú.ú!z//z==z!=z&&z||z->ú=)
ú(ú)ú[ú]ú;ú{ú}ú:ú,ú@z#.*$z/\*Úcommentz\s+z(%s)ú|c                 c   ó   � | ]
}t  |¡d  V  qdS ©z\bN©ÚreÚescape©Ú.0Úentry© r>   ú5/usr/lib/python3/dist-packages/pygments/lexers/nix.pyÚ	<genexpr>7   ó   € zNixLexer.<genexpr>c                 c   r6   r7   r8   r;   r>   r>   r?   r@   :   rA   z\b(true|false|null)\bc                 c   ó   � | ]}t  |¡V  qd S ©Nr8   r;   r>   r>   r?   r@   @   ó   € z\b(or|and)\bc                 c   rB   rC   r8   r;   r>   r>   r?   r@   G   rD   z[0-9]+ú"Údoublequotez''Úsinglequotez[\w.+-]*(\/[\w.+-]+)+z\<[\w.+-]+(\/[\w.+-]+)*\>z4[a-zA-Z][a-zA-Z0-9\+\-\.]*\:[\w%/?:@&=+$,\\.!~*\'-]+z
[\w-]+\s*=z[a-zA-Z_][\w\'-]*z[^/*]+z#pushz\*/z#popz[*/]z'''z''\$\{z''\nz''\rz''\tz\$\{Ú	antiquotez[^']z\\z\\"z\\$\{z[^"]z\}Úroot)rI   r4   rG   rF   rH   c                 C   sX   d}t  d| ¡r|d7 }t  d| ¡r|d7 }t  d| ¡r |d7 }t  d| ¡r*|d7 }|S )Ng        zimport.+?<[^>]+>gš™™™™™Ù?zmkDerivation\s+(\(|\{|rec)z=\s+mkIf\s+z\{[a-zA-Z,\s]+\}:gš™™™™™¹?)r9   Úsearch)ÚtextÚrvr>   r>   r?   Úanalyse_text|   s   zNixLexer.analyse_textN)'Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesr9   Ú	MULTILINEÚUNICODEÚflagsÚkeywordsr   Ú	operatorsÚpunctuationsr   ÚSingleÚ	Multiliner   Újoinr   r   ÚBuiltinÚConstantr   ÚWordr   r
   ÚIntegerr	   ÚDoubler   ÚSymbolÚEscapeÚInterpolr   ÚtokensrM   r>   r>   r>   r?   r      sx    
ÿÿ

Ó1

ü

ø

ú
	
ü·Q)rQ   r9   Úpygments.lexerr   r   Úpygments.tokenr   r   r   r   r   r	   r
   r   r   Ú__all__r   r>   r>   r>   r?   Ú<module>   s    
,