Ë
    |í¼es  ã                   óˆ   — d Z ddlZddlmZmZ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 ddgZ G d„ de«      Z G d„ de«      Zy)	zß
    pygments.lexers.bibtex
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for BibTeX bibliography data and styles

    :copyright: Copyright 2006-2023 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                   ó\  — e Zd ZdZdZddgZdgZdgZej                  Z
dZdj                  d	ez   d
ez   «      Zd„ Zd„ Z ed«      defdej&                  dfdej&                  dfdez   ej&                  dfdefg ed«      dedfg ed«      dedfg ed«      dej(                  dfg ed«      dedf ed«      g ed«      eej.                  df ed«      g ed«      dedfg ed«      eej0                  fded fd!ed"fd#efd$ef ed«      gd!ed"fdedfd%efgd!ed&fd'edfd(efgd)efgd*œZy+),r   zQ
    A lexer for BibTeX bibliography data format.

    .. versionadded:: 2.2
    ÚBibTeXÚbibtexÚbibz*.bibztext/x-bibtexz@!$&*+\-./:;<>?\[\\\]^`|~z	[{}][{}]*za-z_z\wc              #   ó–   K  — |j                  «       }||_        |j                  «       t        |f–— |j	                  «       |_        y ­w)N)ÚgroupÚopening_braceÚstartr   ÚendÚpos)ÚselfÚmatchÚctxr   s       ú8/usr/lib/python3/dist-packages/pygments/lexers/bibtex.pyÚopen_brace_callbackzBibTeXLexer.open_brace_callback%   s9   è ø€ ØŸ™›ˆØ)ˆÔØ�k‰k‹mœ[¨-Ð7Ò7Ø—)‘)“+ˆ�ùs   ‚AA	c              #   ó  K  — |j                  «       }|j                  dk(  r|dk7  s|j                  dk(  r|dk7  r|j                  «       t        |f–— n|j                  «       t        |f–— |`|j                  «       |_        y ­w)Nú{ú}ú(ú))r   r   r   r   r   r   r   )r   r   r   Úclosing_braces       r   Úclose_brace_callbackz BibTeXLexer.close_brace_callback+   st   è ø€ ØŸ™›ˆà×Ñ Ò$¨¸#Ò)=Ø×Ñ Ò$¨¸#Ò)=à—+‘+“-¤¨Ð5Ó5à—+‘+“-¤¨mÐ;Ò;ØÐØ—)‘)“+ˆ�ùs   ‚BBÚ
whitespacez@comment(?!ary)z	@preamble)úclosing-braceÚvalueúopening-bracez@string)r)   Úfieldr+   ú@)r)   úcommand-bodyr+   z.+z[{(]ú#popz[})]z
[^\s\,\}]+)r/   Úfieldsú,r,   )r*   ú=r2   ú"úquoted-stringú\{úbraced-stringz[\d]+ú#z[^\{\"]+z#pushú\}z[^\{\}]+ú\s+)Úrootr+   r)   r.   r0   r,   r2   r*   r4   r6   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      s   „ ñð €DØ˜Ð€GØ�	€IØ Ð!€IØ�M‰M€Eà0€MØ×#Ñ# F¨]Ñ$:¸EÀMÑ<QÓR€Jòò
ñ �LÓ!Ø Ð)Ø˜$Ÿ*™*Ð&QÐRØ˜Ÿ
™
Ð$OÐPØ�:Ñ˜tŸz™zØ?ðAà�7ˆOð
ñ �LÓ!ØÐ)¨6Ð2ð
ñ
 �LÓ!ØÐ*¨FÐ3ð
ñ
 �LÓ!Ø˜DŸJ™JÐ(:Ð;ð
ñ
 �LÓ!Ø�+˜wÐ'Ù�F‹Oð
ñ �LÓ!Ø˜Ÿ™¨Ð8Ù�F‹Oð
ñ �LÓ!Ø�+˜vÐ&ð
ñ
 �LÓ!Ø˜Ÿ™Ð'Ø�&˜/Ð*Ø�F˜OÐ,Ø�vÐØ�+ÐÙ�F‹Oð
ð �F˜OÐ,Ø�&˜&Ð!Ø˜&Ð!ð
ð �F˜GÐ$Ø�F˜FÐ#Ø˜&Ð!ð
ð �ZÐ ð
ño:�FrO   c                   ó˜  — e Zd ZdZdZddgZdgZej                  ej                  z  Z
 ed«       eddg«      ef eg d	¢«      ed
f eddg«      edf edg«      edfg ed«      dedfg ed«      dedfg ed«      dej                   fdej"                  fdej$                  fdefdefdedf ed«      gdefdej0                  fgdœZy)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   r5   )r/   ú	group-endÚbodyr8   r/   z\'[^#\"\{\}\s]+z[^#\"\{\}\s]+\$z[^#\"\{\}\s]+z"[^\"]*"z#-?\d+)r]   r^   r9   z%.*?$)r:   r   r]   r^   r(   N)r;   r<   r=   r>   r?   r@   rA   rC   rD   Ú	MULTILINErE   r   r   r   r   r   ÚFunctionÚBuiltinrL   r
   r   r   r   r	   ÚSinglerM   rN   rO   r   r   r   t   s6  „ ñð €DØ�lÐ#€GØ�	€IØ�M‰M˜BŸL™LÑ(€Eñ �LÓ!Ù�F˜FÐ#Ó$ gÐ.ÙÒKÓLØ�wð!á�J Ð(Ó)¨7Ð4FÐGÙ�G�9Ó˜wÐ(CÐDð
ñ �LÓ!Ø�KÐ!>Ð?ð
ñ
 �LÓ!Ø�K Ð(ð
ñ
 �LÓ!Ø §¡Ð/Ø §¡Ð.Ø˜tŸ}™}Ð-Ø˜&Ð!Ø˜ÐØ�KÐ!6Ð7Ù�F‹Oð	
ð �ZÐ Ø�g—n‘nÐ%ð
ñ7�FrO   )r>   rC   Úpygments.lexerr   r   r   r   r   Úpygments.tokenr   r	   r
   r   r   r   r   r   Ú__all__r   r   rN   rO   r   ú<module>rf      sP   ðñó 
÷
õ 
÷÷ ó ð ˜*Ð
%€ô\Ð$ô \ô~+ˆzõ +rO   