�
|�e � �~ � d Z ddlmZmZmZ ddlmZmZmZm Z m
Z
mZmZm
Z
mZ dgZdZedz Zd� Zd� Z G d � de� Zy
)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 � dj | � t fdt j f| t dfgS )Nz[^{}\\]z\\.�#pop)�formatr �Escape��
quote_marks �9/usr/lib/python3/dist-packages/pygments/lexers/jsonnet.py�string_rulesr s5 � � � � �:� &��/� ����� �V�V�$�� � c �J � dj | �� t j dfgS )Nz([^{quote}\\]|\\.)*{quote})�quote�field_separator)r r �Variabler s r �quoted_field_namer s, � � &� -� -�J� -� ?�
���)� +�� r c �v � e Zd ZdZdZdgZddgZdZi ddej fd e
j fd
efg�d ed� de
fd
e
fde
dfde
dfde
fde
j fdefdedfdedfdedfdedf eg d�d�� efd efd!ed"fd#ez ej, d$feej. d$feej2 fd%efg�d ed� �d ed� �dd&efd'ed(f ed� g�deej. d"feej2 fd efd)ed*fg�d+d,efd-ed(f ed� g�dd.efd-ed(f ed� g�d"eej2 fd/efd0ed(fd&efd efd,ed1fg�d$d/efd0ed(fd&efd ef ed� g�dd efded2fded3fded4fd5e� d6�ed7fd8ed(fdej2 d9fdej2 d:f ed� g �d7eej. d;feej2 d<fg�d9 ed� �d: ed� �d4d'ed<f ed� g�d1d=ed(f ed� g�d<d efd>ed?f ed� g�d&ed(fd8ed@f ed� gd.efd&ed(f ed� geej2 dAfd efgd,efd&ed(fd8ed@f ed� gdB��ZyC)Dr zLexer for Jsonnet source code.�Jsonnet�jsonnetz *.jsonnetz*.libsonnetzhttps://jsonnet.org� _commentsz
(//|#).*\nz/\*\*([^/]|/(?!\*))*\*/z/\*([^/]|/(?!\*))*\*/�rootz@'.*'z@".*"�'�singlestring�"�doublestringz\|\|\|(.|\n)*\|\|\|z[+-]?[0-9]+(.[0-9])?z[!$~+\-&|^=<>*/%]z\{�objectz\[�arrayzlocal\b�
local_namezassert\b�assert)r* �else�error�false�for�if�import� importstr�in�null�
tailstrict�then�self�super�truez\b)�suffixz\s+zfunction(?=\()�function_paramszstd\.�
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��k�G��m�,�I�
�C�}��
�G�N�N�+�
'����4�
%�w�/�
�}� ��K� �
�v��
�v��
�6�>�*�
�6�>�*�
#�V�,�
$�f�l�l�3� "�8�,�
�K��*�
�K��)�
��<�1�
�'�8�,�
� � � � '�
(�
�Z� �
��):�;�
�.�
.����o�N�
#�T�]�]�O�D�
�D�M�M�*�
��$�5
�}�F ��S�)�G}�H ��S�)�I}�J �
�;��
�K��(��F�O�
�K}�T �
#�T�]�]�4E�F�
�D�M�M�*�
�Z� �
�j�"9�:�
�U}�` �
�8��
�;��'��F�O�
�a}�j �
�;��
�;��'��F�O�
�k}�t �
�D�M�M�*�
�K� �
�K��(�
�;��
�Z� �
�8�5�6�
�u}�D �
�K� �
�K��(�
�;��
�Z� ��F�O�
�E}�R �
�Z� �
��"5�6�
�'�?�3�
�H�/�0��M�?�!�
$�d�L�9�
�K��(�
�4�=�=�"5�6�
�4�=�=�"5�6��K� �
�S}�h �
#�T�]�]�6�
� �D�M�M�+<�=�
�i}�t �.�s�3�u}�v �.�s�3�w}�x �
�H�/�0��F�O�
�y}�@ !�
�:�v�.��F�O�#
�A}�H �
�Z� �
�+�'F�G��K� �
�I}�T �;��'�
�K��*��F�O�
� �;��
�;��'��F�O�
� �D�M�M�+I�J�
�Z� �
�
�8��
�;��'�
�K��*��F�O�
�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�:� Dr |