File: //lib/python3/dist-packages/pygments/lexers/__pycache__/bibtex.cpython-311.pyc
�
�E�cs � � � d Z ddlZddlmZmZmZmZmZ ddlm Z m
Z
mZmZm
Z
mZmZmZ ddgZ G d� de� � Z G d� de� � ZdS ) z�
pygments.lexers.bibtex
~~~~~~~~~~~~~~~~~~~~~~
Lexers for BibTeX bibliography data and styles
:copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�
RegexLexer�ExtendedRegexLexer�include�default�words)�Name�Comment�String�Error�Number�Keyword�Punctuation�
Whitespace�BibTeXLexer�BSTLexerc �b � e Zd ZdZdZddgZdgZdgZej Z
dZd� d ez d
ez � � Z
d� Zd� Z ed
� � defdej dfdej dfde
z ej dfdefg ed
� � dedfg ed
� � dedfg ed
� � dej dfg ed
� � dedf ed� � g ed
� � e
ej df ed� � g ed
� � dedfg ed
� � e
ej fded fd!ed"fd#efd$ef ed� � gd!ed"fdedfd%efgd!ed&fd'edfd(efgd)efgd*�Zd+S ),r zQ
A lexer for BibTeX bibliography data format.
.. versionadded:: 2.2
�BibTeX�bibtex�bibz*.bibz
text/x-bibtexz@!$&*+\-./:;<>?\[\\\]^`|~z [{}][{}]*za-z_z\wc # � K � |� � � }||_ |� � � t |fV � |� � � |_ d S )N)�group�
opening_brace�startr �end�pos)�self�match�ctxr s �8/usr/lib/python3/dist-packages/pygments/lexers/bibtex.py�open_brace_callbackzBibTeXLexer.open_brace_callback% sI � � � ����
�
�
�)����k�k�m�m�[�-�7�7�7�7��)�)�+�+����� c # �& K � |� � � }|j dk r|dk s|j dk r%|dk r|� � � t |fV � n|� � � t |fV � |`|� � � |_ d S )N�{�}�(�))r r r r r r r )r r r �
closing_braces r �close_brace_callbackz BibTeXLexer.close_brace_callback+ s� � � � ����
�
�
����$�$��#�)=�)=����$�$��#�)=�)=��+�+�-�-��
�5�5�5�5�5��+�+�-�-��m�;�;�;�;����)�)�+�+����r! �
whitespacez@comment(?!ary)z @preamble)�
closing-brace�value�
opening-bracez@string)r* �fieldr, �@)r* �command-bodyr, z.+z[{(]�#popz[})]z
[^\s\,\}]+)r0 �fields�,r- )r+ �=r3 �"�
quoted-string�\{�
braced-stringz[\d]+�#z[^\{\"]+z#push�\}z[^\{\}]+�\s+)�rootr, r* r/ r1 r- r3 r+ r5 r7 r) N)�__name__�
__module__�__qualname__�__doc__�name�aliases� filenames� mimetypes�re�
IGNORECASE�flags�
ALLOWED_CHARS�format�
IDENTIFIERr r( r r r �Class�Labelr r � Attribute�Variabler
r r �tokens� r! r r r sS � � � � � �� � �D����G�� �I� �!�I��M�E�0�M��#�#�F�]�$:�E�M�<Q�R�R�J�� � �
�
�
�
�G�L�!�!�
��)�
�$�*�&Q�R�
��
�$O�P�
�:�
�t�z�
?�
A�
�7�O�
�
�G�L�!�!�
�)�6�2�
�
�G�L�!�!�
�*�F�3�
�
�G�L�!�!�
�D�J�(:�;�
�
�G�L�!�!�
�+�w�'��G�F�O�O�
�
�G�L�!�!�
����8��G�F�O�O�
�
�G�L�!�!�
�+�v�&�
�
�G�L�!�!�
���'�
�&�/�*�
�F�O�,�
�v��
�+���G�F�O�O�
� �F�O�,�
�&�&�!�
�&�!�
� �F�G�$�
�F�F�#�
�&�!�
� �Z� �
�o:� :�F�F�Fr! c
� � e Zd ZdZdZddgZdgZej ej z Z
ed� � eddg� � e
f eg d �� � e
d
f eddg� � e
d
f edg� � e
dfg ed� � dedfg ed� � dedfg ed� � dej fdej fdej fdefdefdedf ed� � gdefdej fgd�ZdS )r zL
A lexer for BibTeX bibliography styles.
.. versionadded:: 2.2
�BST�bstz
bst-pybtexz*.bstr) �read�sort)�execute�integers�iterate�reverse�stringsr �function�macro)r r �entry)r r r r6 )r0 � group-end�bodyr9 r0 z\'[^#\"\{\}\s]+z[^#\"\{\}\s]+\$z
[^#\"\{\}\s]+z"[^\"]*"z#-?\d+)r] r^ r: z%.*?$)r; r r] r^ r) N)r<