a
    Df                     @   sz   d Z ddlmZ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dZed Zdd Zd	d
 ZG dd deZdS )z
    pygments.lexers.jsonnet
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexer for Jsonnet data templating language.

    :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )include
RegexLexerwords)	CommentKeywordNameNumberOperatorPunctuationStringText
WhitespaceJsonnetLexerz
[^\W\d]\w*z(?=\()c                 C   s"   d|  dt fdt jf| t dfgS )Nz[^z\\]z\\.#pop)r   ZEscapeZ
quote_mark r   d/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/pygments/lexers/jsonnet.pystring_rules   s    r   c                 C   s   d|  d|  t jdfgS )Nz([^z	\\]|\\.)*field_separator)r   Variabler   r   r   r   quoted_field_name   s    r   c                   @   s  e Zd ZdZdZdgZddgZdZdZde	j
fd	ejfd
e	fgeddefdefdedfdedfdefdejfdefdedfdedfdedfdedfeg dddefd efd!ed"fd#e ejd$feejd$feejfd%efgededd&efd'ed(fed)geejd"feejfd efd*ed+fgd,efd-ed(fed)gd.efd-ed(fed)geejfd/efd0ed(fd&efd efd,ed1fgd/efd0ed(fd&efd efed)gd efded2fded3fded4fd5e d6ed7fd8ed(fdejd9fdejd:fedg	eejd;feejd<fgededd'ed<fed)gd=ed(fed)gd efd>ed?fedgd&ed(fd8ed@fed)gd.efd&ed(fed)geejdAfd efgd,efd&ed(fd8ed@fed)gdBZdCS )Dr   zLexer for Jsonnet source code.ZJsonnetZjsonnetz	*.jsonnetz*.libsonnetzhttps://jsonnet.org z
(//|#).*\nz/\*\*([^/]|/(?!\*))*\*/z/\*([^/]|/(?!\*))*\*/	_commentsz@'.*'z@".*"'singlestring"doublestringz\|\|\|(.|\n)*\|\|\|z[+-]?[0-9]+(.[0-9])?z[!$~+\-&|^=<>*/%]z\{objectz\[arrayzlocal\b
local_namezassert\bassert)r    elseerrorfalseforifimportZ	importstrinnullZ
tailstrictZthenselfsupertruez\b)suffixz\s+zfunction(?=\()function_paramszstd\.function_argsz[\.()],z\]r   rootz(?==))r   local_value=;:z\(z\)function_param_defaultobject_local_nameobject_assertfield_name_exprz(?=)
field_namez\}double_field_namesingle_field_name)r   r-   r   z	(?=[,\)])z\+?::?:?)r   r   field_valuez#pop:2)r   object_local_value)r   r0   r   r   r   r   r1   r    r-   r.   r   r:   r;   r<   r8   r5   r   r=   r7   r6   r>   N)__name__
__module____qualname____doc__namealiases	filenamesurlZversion_addedr   Singler   ZDocr   r   ZFloatr	   r
   r   r   r   jsonnet_function_tokenr   ZBuiltinZFunctionjsonnet_tokenr   r   r   r   tokensr   r   r   r   r   $   s   

	



N)rB   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   __all__rI   rH   r   r   r   r   r   r   r   <module>   s   
,