o
    Ñ­jH  ã                   @   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-present 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ZddgZdgZdgZd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ejfdejfdefdefdefd d dd„ eD ƒ¡¡efdejfdedfd d d d„ eD ƒ¡¡efd!ej d"fd#ejd$fd%efd&ej!fd'efd(ej"d)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d-fd(ej"d)fd0ejfd1ejfd2ejfd3ejfgd4ej#fd!ej d-fd(ej"d)fd5ej fd6ej fd7ej fd8ej fgd9ej"d-fd(ej"d+fe$d:ƒgd9ed-fe$d:ƒgd;œZ%d<d=„ Z&d>S )?r   z
    For the Nix language.
    ÚNixzhttp://nixos.org/nix/ÚnixosÚnixz*.nixz
text/x-nixz2.0)
Ú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({})ú|c                 c   ó   � | ]
}t  |¡d  V  qdS ©z\bN©ÚreÚescape©Ú.0Úentry© rC   úP/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/nix.pyÚ	<genexpr>5   ó   € zNixLexer.<genexpr>c                 c   r;   r<   r=   r@   rC   rC   rD   rE   8   rF   z\b(true|false|null)\bz!-?(\d+\.\d*|\.\d+)([eE][-+]?\d+)?z-?[0-9]+z[\w.+-]*(\/[\w.+-]+)+z~(\/[\w.+-]+)+z\<[\w.+-]+(\/[\w.+-]+)*\>c                 c   ó   � | ]}t  |¡V  qd S ©Nr=   r@   rC   rC   rD   rE   I   ó   € z\b(or|and)\bz\{Úblockc                 c   rG   rH   r=   r@   rC   rC   rD   rE   R   rI   ú"Ú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)rO   r9   rM   rL   rN   rJ   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š™™™™™¹?)r>   Úsearch)ÚtextÚrvrC   rC   rD   Úanalyse_text…   s   zNixLexer.analyse_textN)'Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚkeywordsr   Ú	operatorsÚpunctuationsr   ÚSingleÚ	Multiliner   ÚformatÚjoinr   r   ÚBuiltinÚConstantr
   ÚFloatÚIntegerr   r   ÚWordr   r	   ÚDoubleÚSymbolÚInterpolÚEscaper   ÚtokensrS   rC   rC   rC   rD   r      sˆ    
ÿÿ


Ë8

ü

ù


ù


üþª\)rW   r>   Úpygments.lexerr   r   Úpygments.tokenr   r   r   r   r   r	   r
   r   r   Ú__all__r   rC   rC   rC   rD   Ú<module>   s    
,