
    |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     )kkm[-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MME0M##F]$:EM<QRJ
 L!)$**&QR

$OP:tzz?A7O
 L!)62

 L!*F3

 L!DJJ(:;

 L!+w'FO
 L!8FO
 L!+v&

 L!'&/*FO,v+FO
 FO,&&!&!
 FG$FF#&!
 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MMBLL(E L!FF#$g.KLw!J()74FGG9w(CD
 L!K!>?

 L!K(

 L!/.t}}-&!K!67FO	
 Z gnn%
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   