o
    ;h                     @   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-2025 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   EscapeZ
quote_mark r   J/var/www/html/venv/lib/python3.10/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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d0efd1ed)fd'efd!efd-ed2fgd%d0efd1ed)fd'efd!efedgdd!efded3fded4fded5fd6e d7ed8fd9ed)fdejd:fdejd;fedg	d8eejd<feejd=fgd:edd;edd5d(ed=fedgd2d>ed)fedgd=d!efd?ed@fedgd'ed)fd9edAfedgd/efd'ed)fedgeejdBfd!efgd-efd'ed)fd9edAfedgdCZdDS )Er   zLexer for Jsonnet source code.Jsonnetjsonnetz	*.jsonnetz*.libsonnetzhttps://jsonnet.org Z	_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_valuer/   =;: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)r7   r4   r3   r8   N)__name__
__module____qualname____doc__namealiases	filenamesurlversion_addedr   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    
,