o
    i                     @   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-2022 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
quote_mark r   R/var/www/edux/Edux_v2/venv/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.org	_commentsz
(//|#).*\nz/\*\*([^/]|/(?!\*))*\*/z/\*([^/]|/(?!\*))*\*/rootz@'.*'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import	importstrinnull
tailstrictthenselfsupertruez\b)suffixz\s+zfunction(?=\()function_paramszstd\.function_argsz[\.()],z\]r   z(?==))r   local_valuer9   =;:z\(z\)function_param_defaultobject_local_nameobject_assertfield_name_exprz(?=)
field_namez\}double_field_namesingle_field_name)r   r6   r   z	(?=[,\)])z\+?::?:?)r   r   field_valuez#pop:2)r   object_local_value)rE   r?   r>   rF   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)rJ   pygments.lexerr   r   r   pygments.tokenr   r   r   r   r	   r
   r   r   r   __all__rU   rR   r   r   r   r   r   r   r   <module>   s    
,