
    L&is                         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-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 Zd ZdZdZddgZdgZdgZej	        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   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   |                                 }||_        |                                t          |fV  |                                |_        d S )N)groupopening_bracestartr   endpos)selfmatchctxr   s       c/home/geonatureadmin/si_en_reseau/tutos/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\,\}]+)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ME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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j        fgdZdS )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<   r=   r>   r?   r@   rA   rB   rD   rE   	MULTILINErF   r   r   r   r   r   FunctionBuiltinrM   r
   r   r   r   r	   SinglerN   rO   r!   r   r   r   t   sr         Dl#G	IMBL(E 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!   )r?   rD   pygments.lexerr   r   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   r   __all__r   r   rO   r!   r   <module>rf      s8    
			
 
 
 
 
 
 
 
 
 
 
 
 
 
                    *
%\ \ \ \ \$ \ \ \~+ + + + +z + + + + +r!   