o
    Zhs                     @   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-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                   @   sl  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 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 ).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                 c   s.    |  }||_| t|fV  | |_d S )N)groupopening_bracestartr   endpos)selfmatchctxr    r   M/var/www/html/lang_env/lib/python3.10/site-packages/pygments/lexers/bibtex.pyopen_brace_callback%   s
   zBibTeXLexer.open_brace_callbackc                 c   sb    |  }|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&   r0   r2   r$   N)__name__
__module____qualname____doc__namealiases	filenames	mimetypesre
IGNORECASEflagsZALLOWED_CHARSformat
IDENTIFIERr   r#   r   r   r   ClassLabelr   r   	AttributeVariabler	   r   r   tokensr   r   r   r   r      sv    







c                   @   s   e Zd ZdZdZddgZdgZejej	B 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)executeZintegersZiteratereversestringsr   functionmacro)r   r   entry)r   r   r   r1   )r+   	group-endbodyr4   r+   z\'[^#\"\{\}\s]+z[^#\"\{\}\s]+\$z[^#\"\{\}\s]+z"[^\"]*"z#-?\d+)rS   rT   r5   z%.*?$)r6   r   rS   rT   r$   N)r7   r8   r9   r:   r;   r<   r=   r?   r@   	MULTILINErA   r   r   r   r   r   FunctionBuiltinrG   r	   r   r   r   r   SinglerH   r   r   r   r   r   t   sB    
	
)r:   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    
(_