o
    Zh                     @   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-2023 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 | tfdtjf| tdfgS )Nz[^{}\\]z\\.#pop)formatr   EscapeZ
quote_mark r   N/var/www/html/lang_env/lib/python3.10/site-packages/pygments/lexers/jsonnet.pystring_rules   s   r   c                 C   s   dj | dtjdfgS )Nz([^{quote}\\]|\\.)*{quote})quotefield_separator)r   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i ddej	fd	e
jfd
efgd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deddeddd&efd'ed(fedgdeejd"feejfd efd)ed*fgd+d,efd-ed(fedgdd.efd-ed(fedgd"eejfd/efd0ed(fd&efd efd,ed1fgd$d/efd0ed(fd&efd efedgd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	d7eejd;feejd<fgd9edd:edd4d'ed<fedgd1d=ed(fedgd<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.Jsonnetjsonnetz	*.jsonnetz*.libsonnetzhttps://jsonnet.orgZ	_commentsz
(//|#).*\nz/\*\*([^/]|/(?!\*))*\*/z/\*([^/]|/(?!\*))*\*/rootz@'.*'z@".*"'Zsinglestring"Zdoublestringz\|\|\|(.|\n)*\|\|\|z[+-]?[0-9]+(.[0-9])?z[!$~+\-&|^=<>*/%]z\{objectz\[arrayzlocal\bZ
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\.Zfunction_argsz[\.()],z\]r   z(?==))r   local_valuer0   =;:z\(z\)Zfunction_param_defaultobject_local_nameobject_assertZfield_name_exprz(?=)
field_namez\}Zdouble_field_nameZsingle_field_name)r   r.   r   z	(?=[,\)])z\+?::?:?)r   r   field_valuez#pop:2)r   object_local_value)r8   r5   r4   r9   N)__name__
__module____qualname____doc__namealiases	filenamesurlr   Singler   Docr   r   Floatr	   r
   r   r   r   jsonnet_function_tokenr   BuiltinFunctionjsonnet_tokenr   r   r   r   tokensr   r   r   r   r   $   s   
#$%*
05:BI

T
Z[\`dj
N)r=   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   __all__rH   rE   r   r   r   r   r   r   r   <module>   s    
,