U
    luf.  ã                   @   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-2023 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                   @   sh  e Zd ZdZdZdZddgZdgZdgZdd	d
dddddddg
Z	dddddddddddgZ
dddd d!d"d#d$d%d&d'd(d)d*d+d,d-gZd.d/d0d1d2d3d4d5d6d7g
Zd8ejfd9ejd:fd;efd<d= d>d?„ e	D ƒ¡ efd<d= d@d?„ e
D ƒ¡ ejfdAejfdBejfdCejfdDefdEefdFefd<d= dGd?„ eD ƒ¡ efdHejfdIedJfd<d= dKd?„ eD ƒ¡ efdLejdMfdNejdOfdPefdQejfdRefdSej dTfgdUejfd9ejdVfdWejdXfdYejfgdZej!fdNejdXfdSej dTfd[ejfd\ejfd]ejfd^ejfgd_ej!fdLejdXfdSej dTfd`ejfdaejfdbejfdcejfgddej dXfdSej dVfe"deƒgddedXfe"deƒgdfœZ#dgdh„ Z$diS )jr   z:
    For the Nix language.

    .. versionadded:: 2.0
    ZNixzhttp://nixos.org/nix/ZnixosZnixz*.nixz
text/x-nixZrecÚwithZletÚinZinheritÚassertÚifÚelseZthenz...ÚimportÚabortZ
baseNameOfZdirOfZisNullÚbuiltinsÚmapZremoveAttrsÚthrowÚtoStringZ
derivationz++ú+ú?Ú.ú!z//z==ú/z!=z&&z||z->ú=ú<ú>Ú*ú-ú(ú)ú[ú]ú;Ú{Ú}ú:ú,ú@z#.*$z/\*Úcommentz\s+z(%s)ú|c                 c   s   | ]}t  |¡d  V  qdS ©z\bN©ÚreÚescape©Ú.0Úentry© r6   ú7/tmp/pip-unpacked-wheel-7eq1ciah/pygments/lexers/nix.pyÚ	<genexpr>6   s     zNixLexer.<genexpr>c                 c   s   | ]}t  |¡d  V  qdS r/   r0   r3   r6   r6   r7   r8   9   s     z\b(true|false|null)\bz!-?(\d+\.\d*|\.\d+)([eE][-+]?\d+)?z-?[0-9]+z[\w.+-]*(\/[\w.+-]+)+z~(\/[\w.+-]+)+z\<[\w.+-]+(\/[\w.+-]+)*\>c                 c   s   | ]}t  |¡V  qd S ©Nr0   r3   r6   r6   r7   r8   J   s     z\b(or|and)\bz\{Úblockc                 c   s   | ]}t  |¡V  qd S r9   r0   r3   r6   r6   r7   r8   S   s     ú"Údoublequotez''Ú	multilinez4[a-zA-Z][a-zA-Z0-9\+\-\.]*\:[\w%/?:@&=+$,\\.!~*\'-]+z[\w-]+(?=\s*=)z[a-zA-Z_][\w\'-]*z\$\{Ú	antiquotez[^/*]+z#pushz\*/z#popz[*/]z''(\$|'|\\n|\\r|\\t|\\)z[^'\$]+z\$[^\{']z'[^']z\$(?=')z\\(\\|"|\$|n)z	[^"\\\$]+z\$[^\{"]z\$(?=")z\\z\}Úroot)r?   r-   r=   r<   r>   r:   c                 C   sX   d}t  d| ¡r|d7 }t  d| ¡r,|d7 }t  d| ¡r@|d7 }t  d| ¡rT|d7 }|S )Ng        zimport.+?<[^>]+>gš™™™™™Ù?zmkDerivation\s+(\(|\{|rec)z=\s+mkIf\s+z\{[a-zA-Z,\s]+\}:gš™™™™™¹?)r1   Úsearch)ÚtextÚrvr6   r6   r7   Úanalyse_text†   s    zNixLexer.analyse_textN)%Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚkeywordsr   Ú	operatorsZpunctuationsr   ÚSingleZ	Multiliner   Újoinr   r   ZBuiltinÚConstantr
   ZFloatZIntegerr   r   ÚWordr   r	   ÚDoubleZSymbolZInterpolZEscaper   ÚtokensrC   r6   r6   r6   r7   r      s¬     ÿ    ÿ        ÿ
ÿÿ


Ë8

ü

ù


ù


üþª\)rG   r1   Zpygments.lexerr   r   Zpygments.tokenr   r   r   r   r   r	   r
   r   r   Ú__all__r   r6   r6   r6   r7   Ú<module>   s
   
,