B
    ë¹`§  ã               @   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               @   s6  e Zd ZdZdZddgZdgZdgZej	ej
B 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'gZd(d)d*d+d,d-d.d/d0d1g
Zd2ejfd3ejd4fd5efd6d7 d8d9„ eD ƒ¡ efd6d7 d:d9„ eD ƒ¡ ejfd;ejfd6d7 d<d9„ eD ƒ¡ efd=ejfd6d7 d>d9„ eD ƒ¡ efd?ejfd@ejdAfdBejdCfdDe fdEe fdFe fdGej!fdHefgdIejfd3ejdJfdKejdLfdMejfgdNej"fdOej"fdPej"fdQej"fdRej"fdBejdLfdSej#dTfdUejfgdVej"fdWej"fdXej"fd@ejdLfdSej#dTfdYejfgdZej#dLfdSej#dJfe$d[ƒgd\œZ%d]d^„ Z&d_S )`r   zU
    For the `Nix language <http://nixos.org/nix/>`_.

    .. versionadded:: 2.0
    ZNixZ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© r.   ú[/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/pygments/lexers/nix.pyú	<genexpr>7   s    zNixLexer.<genexpr>c             c   s   | ]}t  |¡d  V  qdS )z\bN)r*   r+   )r,   r-   r.   r.   r/   r0   :   s    z\b(true|false|null)\bc             c   s   | ]}t  |¡V  qd S )N)r*   r+   )r,   r-   r.   r.   r/   r0   @   s    z\b(or|and)\bc             c   s   | ]}t  |¡V  qd S )N)r*   r+   )r,   r-   r.   r.   r/   r0   G   s    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)r5   r(   r3   r2   r4   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š™™™™™¹?)r*   Úsearch)ÚtextÚrvr.   r.   r/   Úanalyse_text|   s    zNixLexer.analyse_textN)'Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesr*   Ú	MULTILINEÚUNICODEÚflagsÚkeywordsr   Ú	operatorsZpunctuationsr   ÚSingleZ	Multiliner   Újoinr   r   ZBuiltinZConstantr   ÚWordr   r
   ZIntegerr	   ÚDoubler   ZSymbolZEscapeZInterpolr   Útokensr9   r.   r.   r.   r/   r      sl   














)r=   r*   Zpygments.lexerr   r   Zpygments.tokenr   r   r   r   r   r	   r
   r   r   Ú__all__r   r.   r.   r.   r/   Ú<module>	   s
   ,