
    Mh                         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dS )	z
    pygments.lexers.bibtex
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for BibTeX bibliography data and styles

    :copyright: Copyright 2006-2025 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                   j   e Zd ZdZdZddgZdgZdgZdZe	j
        ZdZd	Zd
                    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j        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d-S ).r   z6
    A lexer for BibTeX bibliography data format.
    BibTeXbibtexbibz*.bibztext/x-bibtex2.2 https://texfaq.org/FAQ-BibTeXingz@!$&*+\-./:;<>?\[\\\]^`|~z	[{}][{}]*za-z_z\wc              #      K   |                                 }||_        |                                t          |fV  |                                |_        d S )N)groupopening_bracestartr   endpos)selfmatchctxr   s       V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/bibtex.pyopen_brace_callbackzBibTeXLexer.open_brace_callback%   sI      )kkmm[-7777))++    c              #   &  K   |                                 }|j        dk    r|dk    s|j        dk    r%|dk    r|                                t          |fV  n|                                t          |fV  |`|                                |_        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\,\}]+)r2   fields,r/   )r-   =r5   "quoted-string\{braced-stringz[\d]+#z[^\{\"]+z#push\}z[^\{\}]+\s+)rootr.   r,   r1   r3   r/   r5   r-   r7   r9   r+   N)__name__
__module____qualname____doc__namealiases	filenames	mimetypesversion_addedre
IGNORECASEflagsurlALLOWED_CHARSformat
IDENTIFIERr"   r*   r   r	   r   ClassLabelr   r   	AttributeVariabler
   r   r   tokens r#   r!   r   r      s]         DG	I !IMME
,C0M##F]$:EM<QRRJ  
 
 
 GL!!)$*&QR
$OP:tz?A7O
 GL!!)62

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

 GL!!DJ(:;

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

 GL!!'&/*FO,v+GFOO
 FO,&&!&!
 FG$FF#&!
 Z 
o: :FFFr#   c                      e Zd ZdZdZddgZdgZdZej	        ej
        z  Zd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j        fgdZdS ) r   z1
    A lexer for BibTeX bibliography styles.
    BSTbstz
bst-pybtexz*.bstr   r   r+   readsort)executeintegersiteratereversestringsr   functionmacro)r   r   entry)r   r   r   r8   )r2   	group-endbodyr;   r2   z\'[^#\"\{\}\s]+z[^#\"\{\}\s]+\$z[^#\"\{\}\s]+z"[^\"]*"z#-?\d+)ra   rb   r<   z%.*?$)r=   r   ra   rb   r+   N)r>   r?   r@   rA   rB   rC   rD   rF   rG   rH   	MULTILINErI   rJ   r   r   r   r   r   FunctionBuiltinrQ   r
   r   r   r   r	   SinglerR   rS   r#   r!   r   r   t   s|         Dl#G	IMMBL(E
,C GL!!UFF#$$g.UKKKLLw!UJ())74FGUG9w(CD
 GL!!K!>?

 GL!!K(

 GL!!/.t}-&!K!67GFOO	
 Z gn%
7 FFFr#   )rA   rG   pygments.lexerr   r   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   r   __all__r   r   rS   r#   r!   <module>rj      s8    
			
 
 
 
 
 
 
 
 
 
 
 
 
 
                    *
%\ \ \ \ \$ \ \ \~+ + + + +z + + + + +r#   