
    |e                     ~    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   Zd Zd Z G d	 de      Zy
)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                 d    dj                  |       t        fdt        j                  f| t        dfgS )Nz[^{}\\]z\\.#pop)formatr   Escape
quote_marks    9/usr/lib/python3/dist-packages/pygments/lexers/jsonnet.pystring_rulesr      s5    			:	&/		VV$     c                 J    dj                  |       t        j                  dfgS )Nz([^{quote}\\]|\\.)*{quote})quotefield_separator)r   r   Variabler   s    r   quoted_field_namer      s,    	&	-	-J	-	?	)	+ r   c                   v   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      efd efd!ed"fd#ez   ej,                  d$feej.                  d$feej2                  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j2                  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j2                  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j2                  d9fdej2                  d:f ed      g	d7eej.                  d;feej2                  d<fgd9 e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j2                  dAfd efgd,efd&ed(fd8ed@f ed      gdBZyC)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_valuer=   =;: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)rI   rC   rB   rJ   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   tokens r   r   r   r   $   s   (DkGm,I
C}GNN+'4%w/
} 	K vv6>*6>*#V,$fll3 "8,K*K)<1'8,  	  '	(
 Z ):;..oN#T]]ODDMM*$5
}F 	S)G}H 	S)I}J 	;K(FO
K}T 	#T]]4EFDMM*Z j"9:	
U}` 	8;'FO
a}j 	;;'FO
k}t 	DMM*K K(;Z 856
u}D 	K K(;Z FO
E}R 	Z "56'?3H/0M?!$dL9K(4=="564=="56K 

S}h 	#T]]6 DMM+<=	
i}t 	.s3u}v 	.s3w}x 	H/0FO
y}@ 	!:v.FO#
A}H 	Z +'FGK 
I}T ;'K*FO
 ;;'FO
 DMM+IJZ 

 8;'K*FO	
o}Fr   N)rN   pygments.lexerr   r   r   pygments.tokenr   r   r   r	   r
   r   r   r   r   __all__rY   rV   r   r   r   r[   r   r   <module>r_      sS    6 5* * * 
&2 D: Dr   