
    MhE                     p    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e          ZdS )z
    pygments.lexers.nix
    ~~~~~~~~~~~~~~~~~~~

    Lexers for the NixOS Nix language.

    :copyright: Copyright 2006-2025 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                   `   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 e
D                                 ef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 eD                                 efdej        fdedf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d/ej        fd0ej        fd1ej        fd2ej        fgd3ej#        fd ej         d,fd'ej"        d(fd4ej         fd5ej         fd6ej         fd7ej         fgd8ej"        d,fd'ej"        d*f e$d9          gd8ed,f e$d9          gd:Z%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              #   D   K   | ]}t          j        |          d z   V  dS z\bNreescape.0entrys     S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/nix.py	<genexpr>zNixLexer.<genexpr>5   1      #S#SBIe$4$4u$<#S#S#S#S#S#S    c              #   D   K   | ]}t          j        |          d z   V  dS r>   r?   rB   s     rE   rF   zNixLexer.<genexpr>8   rG   rH   z\b(true|false|null)\bz!-?(\d+\.\d*|\.\d+)([eE][-+]?\d+)?z-?[0-9]+z[\w.+-]*(\/[\w.+-]+)+z~(\/[\w.+-]+)+z\<[\w.+-]+(\/[\w.+-]+)*\>c              #   >   K   | ]}t          j        |          V  d S Nr?   rB   s     rE   rF   zNixLexer.<genexpr>I   s,      #L#LBIe$4$4#L#L#L#L#L#LrH   z\b(or|and)\bz\{blockc              #   >   K   | ]}t          j        |          V  d S rK   r?   rB   s     rE   rF   zNixLexer.<genexpr>R   s,      #O#OBIe$4$4#O#O#O#O#O#OrH   "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)rR   r;   rP   rO   rQ   rL   c                     d}t          j        d|           r|dz  }t          j        d|           r|dz  }t          j        d|           r|dz  }t          j        d|           r|dz  }|S )Ng        zimport.+?<[^>]+>g?zmkDerivation\s+(\(|\{|rec)z=\s+mkIf\s+z\{[a-zA-Z,\s]+\}:g?)r@   search)textrvs     rE   analyse_textzNixLexer.analyse_text   s    9($// 	#IB92D99 	#IB9^T** 	#IB9)400 	#IB	rH   N)'__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   tokensrW    rH   rE   r   r      sd         D
!CG	IIM' ' 'HI I IHB B BI FEEL
 gn% W&	2 TN ]]388#S#S(#S#S#SSSTTV]^ ]]388#S#S(#S#S#SSSTT\ &t}5 26<@ &.) &w/()73 ]]388#L#L)#L#L#LLLMM hm,K) ]]388#O#O,#O#O#OOOPPR]^ 6=-0F$k2 EgN .!4(fo{3k6
p )*W&0W&/g'(	
 (7F$f-fo{3)*&*+v'()*
 v}-6=&)fo{36=)&-('FM"
 FOV,fow/GFOO	
 K(GFOO
mZ ZFx    rH   )r[   r@   pygments.lexerr   r   pygments.tokenr   r   r   r   r	   r
   r   r   r   __all__r   rs   rH   rE   <module>rw      s     
			 . . . . . . . .! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ,| | | | |z | | | | |rH   