o
    xiO                     @   s\  d Z ddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
mZmZmZ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mZmZ ddlmZm Z  g d	Z!G d
d de
Z"G dd de
Z#G dd de
Z$G dd de
Z%G dd de
Z&G dd de
Z'G dd de'Z(G dd deZ)G dd deZ*G dd deZ+G dd de
Z,dS ) z
    pygments.lexers.markup
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for non-HTML markup languages.

    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)	HtmlLexerXmlLexer)JavascriptLexer)CssLexer)	
RegexLexerDelegatingLexerincludebygroupsusingthisdo_insertionsdefaultwords)
TextCommentOperatorKeywordNameStringNumberPunctuationGenericOther)get_bool_optClassNotFound)BBCodeLexerMoinWikiLexerRstLexerTexLexer
GroffLexerMozPreprocHashLexerMozPreprocPercentLexerMozPreprocXulLexerMozPreprocJavascriptLexerMozPreprocCssLexerMarkdownLexerc                   @   sh   e Zd ZdZdZdgZdgZdefdedfdefgd	efd
e	e
jeefde	eefdedfgdZdS )r   zR
    A lexer that highlights BBCode(-like) syntax.

    .. versionadded:: 0.6
    BBCodebbcodeztext/x-bbcodez[^[]+z\[/?\w+tagz\[\s+z(\w+)(=)("?[^\s"\]]+"?)z(=)("?[^\s"\]]+"?)z\]#pop)rootr(   N)__name__
__module____qualname____doc__namealiases	mimetypesr   r   r	   r   	Attributer   r   tokens r5   r5   W/home/ubuntu/.local/lib/python3.10/site-packages/wandb/vendor/pygments/lexers/markup.pyr      s&    
r   c                   @   s   e Zd ZdZdZddgZg ZdgZej	ej
B Zdefdeeefdeejeeejefd	eejejd
fdefdeeejefdeeejefdefdeeeefdefdefdefdefgdejdfdedfdejfdejfgdZdS )r   zI
    For MoinMoin (and Trac) Wiki markup.

    .. versionadded:: 0.7
    zMoinMoin/Trac Wiki markupz	trac-wikimoinztext/x-trac-wikiz^#.*$z(!)(\S+)z^(=+)([^=]+)(=+)(\s*#.+)?$z(\{\{\{)(\n#!.+)?	codeblockz(\'\'\'?|\|\||`|__|~~|\^|,,|::)z^( +)([.*-])( )z^( +)([a-z]{1,5}\.)( )z\[\[\w+.*?\]\]z(\[[^\s\]]+)(\s+[^\]]+?)?(\])z^----+$z[^\n\'\[{!_~^,|]+\n.z\}\}\}r*   z\{\{\{z#pushz[^{}]+)r+   r8   N)r,   r-   r.   r/   r0   r1   	filenamesr2   re	MULTILINE
IGNORECASEflagsr   r	   r   r   r   Headingr
   r   r   r   Builtin	NamespacePreprocr4   r5   r5   r5   r6   r   ?   s>    


r   c                   @   s  e Zd ZdZdZg dZddgZddgZej	Z
dd	 Zd
ZdZdeeeef Zdeejeejeejefdeejeejefdeeeeeddfdeeeeeddfdeeeeeddfdeeeeeddfdeeeeeddfdeeeeeddfdefdeeeejeeeeddfdeeeejeeddfdeeeejeeddfdeeeejeejeeeeddfdejfdeeejefdeeejeejfdeeeddeeddfd ee j!ee e ee fe"dgd!efd"e d#fd$ee e j#e fd%e fd&eej$ej%fd'eej%ej$fd(ej&fd)ej'fd*e fd+ejfd,efd-efgd.e fd"e e d/fd0e fgd1Z(d2d3 Z)d4d5 Z*d6S )7r   a  
    For `reStructuredText <http://docutils.sf.net/rst.html>`_ markup.

    .. versionadded:: 0.7

    Additional options accepted:

    `handlecodeblocks`
        Highlight the contents of ``.. sourcecode:: language``,
        ``.. code:: language`` and ``.. code-block:: language``
        directives with a lexer for the given language (default:
        ``True``).

        .. versionadded:: 0.8
    reStructuredText)rstrestrestructuredtextz*.rstz*.restz
text/x-rstztext/prs.fallenstein.rstc              	   c   s   ddl m} |dt|dfV  |dt|dfV  |dtj|dfV  |dt|dfV  |dt|dfV  |dt|dfV  |d	t|d	fV  d }| j	rvz||d
 }W n	 tyu   Y nw |d
}t|}||d |d |d }|d u r|d
t|fV  d S g }|d}d}|D ]&}	t|	|kr|t|dt|	d | fgf ||	|d  7 }q||	7 }qt|||D ]}
|
V  qd S )Nr   get_lexer_by_name                        	   
      T )pygments.lexersrI   startr   groupr   r   Wordr   handlecodeblocksstripr   lenr   
splitlinesappendr   get_tokens_unprocessed)selfmatchrI   lexer	indentionindention_sizecodeins	codelineslineitemr5   r5   r6   _handle_sourcecode   sB   
"
"
zRstLexer._handle_sourcecodeu   '")]}>’”»!?u   ‐‑‒–— z((?=$)|(?=[-/:.,; \n\x00%s%s]))zH^(=+|-+|`+|:+|\.+|\'+|"+|~+|\^+|_+|\*+|\++|#+)([ \t]*\n)(.+)(\n)(\1)(\n)zc^(\S.*)(\n)(={3,}|-{3,}|`{3,}|:{3,}|\.{3,}|\'{3,}|"{3,}|~{3,}|\^{3,}|_{3,}|\*{3,}|\+{3,}|#{3,})(\n)z!^(\s*)([-*+])( .+\n(?:\1  .+\n)*)inlinestatez1^(\s*)([0-9#ivxlcmIVXLCM]+\.)( .+\n(?:\1  .+\n)*)z4^(\s*)(\(?[0-9#ivxlcmIVXLCM]+\))( .+\n(?:\1  .+\n)*)z$^(\s*)([A-Z]+\.)( .+\n(?:\1  .+\n)+)z*^(\s*)(\(?[A-Za-z]+\))( .+\n(?:\1  .+\n)+)z^(\s*)(\|)( .+\n(?:\|  .+\n)*)zl^( *\.\.)(\s*)((?:source)?code(?:-block)?)(::)([ \t]*)([^\n]+)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\8.*|)\n)+)z,^( *\.\.)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))z'^( *\.\.)(\s*)(_(?:[^:\\]|\\.)+:)(.*?)$z^( *\.\.)(\s*)(\[.+\])(.*?)$z9^( *\.\.)(\s*)(\|.+\|)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))z^ *\.\..*(\n( +.*\n|\n)+)?z^( *)(:[a-zA-Z-]+:)(\s*)$z^( *)(:.*?:)([ \t]+)(.*?)$z!^(\S.*(?<!::)\n)((?:(?: +.*)\n)+)z2(::)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\3.*|)\n)+)\\.z``literalz(`.+?)(<.+?>)(`__?)z`.+?`__?z(`.+?`)(:[a-zA-Z0-9:-]+?:)?z(:[a-zA-Z0-9:-]+?:)(`.+?`)z\*\*.+?\*\*z\*.+?\*z\[.*?\]_z<.+?>z[^\\\n\[*`:]+r:   z[^`]+r*   `)r+   rk   ro   c                 K   $   t |dd| _tj| fi | d S NrZ   Tr   rZ   r   __init__r`   optionsr5   r5   r6   rt        zRstLexer.__init__c                 C   s   | d d dkr| dd dkrdS |  d}|  d|d }|dkrA|d d |krC| |d  d	v rE| |d  | |d  krGd
S d S d S d S d S )NrK   z..rL   r:   g333333?
rJ   z-=g      ?)find)textp1p2r5   r5   r6   analyse_text	  s    
zRstLexer.analyse_textN)+r,   r-   r.   r/   r0   r1   r;   r2   r<   r=   r?   rj   closersunicode_delimitersescapeend_string_suffixr	   r   r@   r   r   r
   r   r   r   rY   r   Tagr   rC   ClassFunctionr   Escaper   InterpolVariabler3   StrongEmphr4   rt   r~   r5   r5   r5   r6   r   l   s    *
;Sr   c                
   @   s  e Zd ZdZdZddgZg dZddgZdefd	e	j
fd
e	j
fgdejdfdedfdejdfdedfdedfdefeddefgde	jfeddefdefde	j
fgdedfdedfedgdedfdedfde	j
fedgde	jfdefedgdZd d! Zd"S )#r   z<
    Lexer for the TeX and LaTeX typesetting languages.
    TeXtexlatex)z*.texz*.auxz*.tocz
text/x-texztext/x-latexz%.*?\nz[{}]z[&_^]z\\\[displaymathz\\\(
inlinemathz\$\$z\$z\\([a-zA-Z]+|.)commandz\\$generalz[^\\$%&_^{}]+[0-9]+z[-=!+*/()\[\]]z[^=!+*/()\[\]\\$%&_^{}0-9-]+z\\\)r*   mathz\\\]z\[.*?\]z\*)r   r+   r   r   r   r   c                 C   s(   dD ]}| d t | |kr dS qd S )N)z\documentclassz\inputz\documentstylez\relaxT)r\   )r{   rW   r5   r5   r6   r~   H  s
   zTexLexer.analyse_textN)r,   r-   r.   r/   r0   r1   r;   r2   r   r   rA   r   Backtickr   r   r   r   r   r   r3   r   r4   r~   r5   r5   r5   r6   r     sP    

)r   c                
   @   s   e Zd ZdZdZg dZddgZddgZdee	e
d	fd
ed	fde	dfedgedde	fde	dfgdefdejfdejfdejfdejfde	d	fgde	dfeddejfdefdefde	fgdZdd ZdS )r   z
    Lexer for the (g)roff typesetting language, supporting groff
    extensions. Mainly useful for highlighting manpage sources.

    .. versionadded:: 0.6
    Groff)groffnroffmanz*.[1234567]z*.manzapplication/x-troffz
text/troffz	(\.)(\w+)requestz\.z[^\\\n]+textlineescapesr9   r*   z	\\"[^\n]*z\\[fn]\wz\\\(.{2}z	\\.\[.*\]rn   z\\\nz	"[^\n"]+"z\d+z\S+r)   )r+   r   r   r   c                 C   sd   | d d dkr
dS | d d dkrdS | d d dkrdS | dd   r.| d  r0d	S d S d S )
NrJ   r:   FrL   z.\"TrM   z.TH g?)isalnumisspace)r{   r5   r5   r6   r~   |  s   zGroffLexer.analyse_textN)r,   r-   r.   r/   r0   r1   r;   r2   r	   r   r   r   r   r   r   r   r   Doubler   r4   r~   r5   r5   r5   r6   r   O  s>    
 r   c                   @   s   e Zd ZdZdZegZg Zg Zdej	dfde
fgdeej	edfedej	d	fged
efdeeefdefdejfdejfdejfdefded	fdefdefg
dZdS )r    z
    Lexer for Mozilla Preprocessor files (with '#' as the marker).

    Other data is left untouched.

    .. versionadded:: 2.0
    mozhashpreprocz^#expr	exprstart.+z(literal)(.*)z#pop:2)defineundefififdefifndefelseelifelifdefelifndefendifexpandfilterunfilterr   includesubsterrorr*   )!z!=z==z&&z||z(defined)(\()z\)r   z__\w+?__z@\w+?@z\w+r9   r)   z\S)r+   r   r   N)r,   r-   r.   r/   r0   r1   r;   r2   r   rC   r   r	   r   r   r   r   r   r   Decimalr   r   r   r4   r5   r5   r5   r6   r      s4    

	
r    c                   @   s:   e Zd ZdZdZegZg Zg Zddej	dfde
fgiZdS )r!   z
    Lexer for Mozilla Preprocessor files (with '%' as the marker).

    Other data is left untouched.

    .. versionadded:: 2.0
    mozpercentpreprocr+   z^%r   r   N)r,   r-   r.   r/   r0   r1   r;   r2   r   rC   r   r4   r5   r5   r5   r6   r!     s    
r!   c                       4   e Zd ZdZdZdgZdgZg Z fddZ  Z	S )r"   z
    Subclass of the `MozPreprocHashLexer` that highlights unlexed data with the
    `XmlLexer`.

    .. versionadded:: 2.0
    zXUL+mozpreproczxul+mozpreprocz*.xul.inc                       t t| jttfi | d S N)superr"   rt   r   r    ru   	__class__r5   r6   rt     
   

zMozPreprocXulLexer.__init__
r,   r-   r.   r/   r0   r1   r;   r2   rt   __classcell__r5   r5   r   r6   r"         r"   c                       r   )r#   z
    Subclass of the `MozPreprocHashLexer` that highlights unlexed data with the
    `JavascriptLexer`.

    .. versionadded:: 2.0
    zJavascript+mozpreproczjavascript+mozpreprocz*.js.inc                    r   r   )r   r#   rt   r   r    ru   r   r5   r6   rt     r   z"MozPreprocJavascriptLexer.__init__r   r5   r5   r   r6   r#     r   r#   c                       r   )r$   z
    Subclass of the `MozPreprocHashLexer` that highlights unlexed data with the
    `CssLexer`.

    .. versionadded:: 2.0
    zCSS+mozpreproczcss+mozpreprocz*.css.inc                    r   r   )r   r$   rt   r   r!   ru   r   r5   r6   rt     r   zMozPreprocCssLexer.__init__r   r5   r5   r   r6   r$     r   r$   c                   @   s<  e Zd ZdZdZdgZdgZdgZej	Z
dd Zdeejefd	eejefd
eeeeeeddfdeeeeeeddfdeeeeeddfdeeejfdeeeefdefedg	defdeeejefdeeejdefdeeejefdejfdejfdeeejeeejefdefdefg	dZdd ZdS )r%   zt
    For `Markdown <https://help.github.com/categories/writing-on-github/>`_ markup.

    .. versionadded:: 2.2
    markdownmdz*.mdztext/x-markdownc                 c   s    ddl m} |dt|dfV  |dt|dfV  |dt|dfV  d}| jrEz||d }W n	 tyD   Y nw |d}|du rY|dt|fV  dS t	g |
|D ]}|V  qa|dt|dfV  dS )	zV
        match args: 1:backticks, 2:lang_name, 3:newline, 4:code, 5:backticks
        r   rH   rJ   rK   rL   NrM   rN   )rV   rI   rW   r   rX   r   rZ   r[   r   r   r_   )r`   ra   rI   rb   re   ri   r5   r5   r6   _handle_codeblock  s&   
zMarkdownLexer._handle_codeblockz^(#)([^#].+\n)z^(#{2,6})(.+\n)z^(\s*)([*-] )(\[[ xX]\])( .+\n)rk   rl   z^(\s*)([*-])(\s)(.+\n)z^(\s*)([0-9]+\.)( .+\n)z^(\s*>\s)(.+\n)z^(```\n)([\w\W]*?)(^```$)z ^(```)(\w+)(\n)([\w\W]*?)(^```$)rn   z(\s)([*_][^*_]+[*_])(\W|\n)z(\s)((\*\*|__).*\3)((?=\W|\n))Nz(\s)(~~[^~]+~~)((?=\W|\n))z`[^`]+`z[@#][\w/:]+z (!?\[)([^]]+)(\])(\()([^)]+)(\))z[^\\\s]+r:   )r+   rk   c                 K   rq   rr   rs   ru   r5   r5   r6   rt   Q  rw   zMarkdownLexer.__init__) r,   r-   r.   r/   r0   r1   r;   r2   r<   r=   r?   r   r	   r   r@   r   
Subheadingr   r
   r   r   r   r   r   Deletedr   r   Entityr   r3   r4   rt   r5   r5   r5   r6   r%     sH    !/r%   )-r/   r<   pygments.lexers.htmlr   r   pygments.lexers.javascriptr   pygments.lexers.cssr   pygments.lexerr   r   r   r	   r
   r   r   r   r   pygments.tokenr   r   r   r   r   r   r   r   r   r   pygments.utilr   r   __all__r   r   r   r   r   r    r!   r"   r#   r$   r%   r5   r5   r5   r6   <module>   s*   
,0!- *:8)