a
    Df                     @   s|   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 deZG dd deZdS )	z
    pygments.lexers.bibtex
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for BibTeX bibliography data and styles

    :copyright: Copyright 2006-2024 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                   @   st  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 de Zdd Zdd Zeddefdejdfdejdfde 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 )0r   z6
    A lexer for BibTeX bibliography data format.
    ZBibTeXZbibtexZbibz*.bibztext/x-bibtex2.2 https://texfaq.org/FAQ-BibTeXingz@!$&*+\-./:;<>?\[\\\]^`|~z	[{}][{}]*za-z_z\wc                 c   s,   |  }||_| t|fV  | |_d S )N)groupopening_bracestartr   endpos)selfmatchctxr    r   c/nfs/NAS7/SABIOD/METHODE/ermites/ermites_venv/lib/python3.9/site-packages/pygments/lexers/bibtex.pyopen_brace_callback%   s    zBibTeXLexer.open_brace_callbackc                 c   s`   |  }|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   Zclosing_bracer   r   r   close_brace_callback+   s    z BibTeXLexer.close_brace_callback
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%   =r-   "quoted-string\{braced-stringz[\d]+#z[^\{\"]+z#push\}z[^\{\}]+\s+)rootr&   r$   r)   r+   r'   r-   r%   r/   r1   r#   N)__name__
__module____qualname____doc__namealiases	filenames	mimetypesversion_addedre
IGNORECASEflagsurlZALLOWED_CHARSformat
IDENTIFIERr   r"   r   r   r   ZClassZLabelr   r   	AttributeVariabler	   r   r   tokensr   r   r   r   r      sx   






c                   @   s   e Zd ZdZdZddgZdgZdZej	ej
B 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.
    ZBSTZbstz
bst-pybtexz*.bstr   r   r#   readsort)executeZintegersZiteratereversestringsr   functionmacro)r   r   entry)r   r   r   r0   )r*   	group-endbodyr3   r*   z\'[^#\"\{\}\s]+z[^#\"\{\}\s]+\$z[^#\"\{\}\s]+z"[^\"]*"z#-?\d+)rP   rQ   r4   z%.*?$)r5   r   rP   rQ   r#   N)r6   r7   r8   r9   r:   r;   r<   r>   r?   r@   	MULTILINErA   rB   r   r   r   r   r   ZFunctionZBuiltinrF   r	   r   r   r   r   SinglerG   r   r   r   r   r   t   sD   
	)r9   r?   Zpygments.lexerr   r   r   r   r   Zpygments.tokenr   r   r	   r
   r   r   r   r   __all__r   r   r   r   r   r   <module>   s   
(_