U
    -e                     @   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   X/var/www/html/Darija-Ai-Train/env/lib/python3.8/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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dddddd d!d"d#d$d%d&d'd(d)gd*d+efd,efd-ed.fd/e ejd0feejd0feejfd1efgededd2efd3ed4fed5geejd.feejfd,efd6ed7fgd8efd9ed4fed5gd:efd9ed4fed5geejfd;efd<ed4fd2efd,efd8ed=fgd;efd<ed4fd2efd,efed5gd,efded>fded?fded@fdAe dBedCfdDed4fdejdEfdejdFfed
g	eejdGfeejdHfgededd3edHfed5gdIed4fed5gd,efdJedKfed
gd2ed4fdDedLfed5gd:efd2ed4fed5geejdMfd,efgd8efd2ed4fdDedLfed5gdNZdOS )Pr   zLexer for Jsonnet source code.Jsonnetjsonnetz	*.jsonnetz*.libsonnetzhttps://jsonnet.orgz
(//|#).*\nz/\*\*([^/]|/(?!\*))*\*/z/\*([^/]|/(?!\*))*\*/	_commentsz@'.*'z@".*"'singlestring"doublestringz\|\|\|(.|\n)*\|\|\|z[+-]?[0-9]+(.[0-9])?z[!$~+\-&|^=<>*/%]z\{objectz\[arrayzlocal\b
local_namezassert\bassert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   r1   r   z	(?=[,\)])z\+?::?:?)r   r   field_valuez#pop:2)r   object_local_value)r   r4   r   r    r"   r#   r5   r$   r1   r2   r!   r>   r?   r@   r<   r9   r   rA   r;   r:   rB   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               

	



N)rF   Zpygments.lexerr   r   r   Zpygments.tokenr   r   r   r   r	   r
   r   r   r   __all__rQ   rN   r   r   r   r   r   r   r   <module>   s   
,