o
    Zha                     @   s  d Z ddlZddlmZ ddlmZ ddl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 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Z0G d"d# d#eZ1G d$d% d%eZ2dS )&z
    pygments.lexers.markup
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for non-HTML markup languages.

    :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)XmlLexer)JavascriptLexer)CssLexer)LilyPondLexer)	JsonLexer)	
RegexLexerDelegatingLexerincludebygroupsusingthisdo_insertionsdefaultwords)TextCommentOperatorKeywordNameStringNumberPunctuationGenericOther
Whitespace)get_bool_optClassNotFound)BBCodeLexerMoinWikiLexerRstLexerTexLexer
GroffLexerMozPreprocHashLexerMozPreprocPercentLexerMozPreprocXulLexerMozPreprocJavascriptLexerMozPreprocCssLexerMarkdownLexerTiddlyWiki5LexerWikitextLexerc                   @   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"\]]+"?)\]#pop)rootr,   N)__name__
__module____qualname____doc__namealiases	mimetypesr   r   r
   r   	Attributer   r   tokens r:   r:   M/var/www/html/lang_env/lib/python3.10/site-packages/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[^{}]+)r0   r=   N)r1   r2   r3   r4   r5   r6   	filenamesr7   re	MULTILINE
IGNORECASEflagsr   r
   r   r   r   Headingr   r   r   r   Builtin	NamespacePreprocr9   r:   r:   r:   r;   r   @   s>    


r   c                   @   s~  e Zd 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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   an  
    For reStructuredText 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
    reStructuredTextz(https://docutils.sourceforge.io/rst.html)restructuredtextrstrestz*.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|||E d H  d S )Nr   get_lexer_by_name                        	   
      T )pygments.lexersrN   startr   groupr   r   Wordr   handlecodeblocksstripr   lenr   
splitlinesappendr   get_tokens_unprocessed)
selfmatchrN   lexerZ	indentionZindention_sizecodeinsZ	codelinesliner:   r:   r;   _handle_sourcecode   s>   
"
"
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+^( *)(:(?:\\\\|\\:|[^:\n])+:(?=\s))([ \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/   `)r0   rl   rp   c                 K   $   t |dd| _tj| fi | d S Nr_   Tr   r_   r   __init__re   optionsr:   r:   r;   ru        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 )NrP   z..rQ   r?   g333333?
rO   z-=g      ?)find)textp1Zp2r:   r:   r;   analyse_text	  s    
zRstLexer.analyse_textN)+r1   r2   r3   r4   r5   urlr6   r@   r7   rA   rB   rD   rk   ZclosersZunicode_delimitersescapeZend_string_suffixr
   r   rE   r   r   r   r   r   r   r^   r   Tagr   rH   Classr   Escaper	   InterpolVariabler8   StrongEmphr9   ru   r~   r:   r:   r:   r;   r   m   s    )
:R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   r0   r   r   r   r   c                 C   s(   dD ]}| d t | |kr dS qd S )N)z\documentclassz\inputz\documentstylez\relaxT)ra   )r|   r\   r:   r:   r;   r~   H  s
   zTexLexer.analyse_textN)r1   r2   r3   r4   r5   r6   r@   r7   r   r   rF   r   Backtickr   r	   r   r   r   r   r8   r   r9   r~   r:   r:   r:   r;   r      sP    

)r    c                
   @   s   e Zd ZdZdZg dZg d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man)z*.[1-9]z*.manz*.1pz*.3pmzapplication/x-troffz
text/troffz	(\.)(\w+)requestz\.z[^\\\n]+textlineescapesr>   r/   z	\\"[^\n]*z\\[fn]\wz\\\(.{2}z	\\.\[.*\]ro   z\\\nz	"[^\n"]+"z\d+z\S+r-   )r0   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 )
NrO   r?   FrQ   z.\"TrR   z.TH g?)isalnumisspace)r|   r:   r:   r;   r~   |  s   zGroffLexer.analyse_textN)r1   r2   r3   r4   r5   r6   r@   r7   r
   r   r   r   r   r	   r   r   r   Doubler   r9   r~   r:   r:   r:   r;   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)(.*)#pop:2)defineZundefifZifdefZifndefelseelifZelifdefZelifndefendifexpandfilterZunfilterr	   Zincludesubsterrorr/   )!z!=z==z&&z||z(defined)(\()z\)r   z__\w+?__z@\w+?@\w+r>   r-   z\S)r0   r   r   N)r1   r2   r3   r4   r5   r6   r@   r7   r   rH   r   r
   r   r   r   r   r   r   Decimalr   r   r   r9   r:   r:   r:   r;   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
    mozpercentpreprocr0   z^%r   r   N)r1   r2   r3   r4   r5   r6   r@   r7   r   rH   r   r9   r:   r:   r:   r;   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  jttfi | d S N)superru   r   r"   rv   	__class__r:   r;   ru        zMozPreprocXulLexer.__init__
r1   r2   r3   r4   r5   r6   r@   r7   ru   __classcell__r:   r:   r   r;   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   ru   r   r"   rv   r   r:   r;   ru     r   z"MozPreprocJavascriptLexer.__init__r   r:   r:   r   r;   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   ru   r   r#   rv   r   r:   r;   ru     r   zMozPreprocCssLexer.__init__r   r:   r:   r   r;   r&     r   r&   c                   @   s  e Zd ZdZdZdZddgZd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jeejefdeej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jfdefedgdefdeeejfdeeejfdeeejfdeeejfdeeejfdeeejfdejfdeeejeeejefd eeejeeej efd!eeej eejfd"efd#efgd$Z!d%d& Z"d'S )(r'   z9
    For Markdown markup.

    .. versionadded:: 2.2
    Markdownz-https://daringfireball.net/projects/markdown/markdownmdz*.mdz
*.markdownztext/x-markdownc                 c   s&   ddl m} |dtj|dfV  |dtj|dfV  |dd ur@|dt|dfV  |dt|dfV  |dt|dfV  d }| jrfz||d	 }W n	 t
ye   Y nw |d	}|d u ry|d	t|fV  ntg ||E d H  |d
tj|d
fV  d S )Nr   rM   initiallangZ	afterlang
whitespaceextranewlinerh   
terminator)r[   rN   r\   r   r   r]   r   r   r_   r`   r   r   rd   re   rf   rN   rg   rh   r:   r:   r;   _handle_codeblock  s(   
zMarkdownLexer._handle_codeblockz(^#[^#].+)(\n)z(^#{2,6}[^#].+)(\n)z^(.+)(\n)(=+)(\n)z^(.+)(\n)(-+)(\n)z^(\s*)([*-] )(\[[ xX]\])( .+\n)rl   rm   z^(\s*)([*-])(\s)(.+\n)z^(\s*)([0-9]+\.)( .+\n)z^(\s*>\s)(.+\n)z^(\s*```\n[\w\W]*?^\s*```$\n)a&  (?x)
              ^(?P<initial>\s*```)
              (?P<lang>[\w\-]+)
              (?P<afterlang>
                 (?P<whitespace>[^\S\n]+)
                 (?P<extra>.*))?
              (?P<newline>\n)
              (?P<code>(.|\n)*?)
              (?P<terminator>^\s*```$\n)
              ro   z([^`]?)(`[^`\n]+`)z ([^\*]?)(\*\*[^* \n][^*\n]*\*\*)z([^_]?)(__[^_ \n][^_\n]*__)z([^\*]?)(\*[^* \n][^*\n]*\*)z([^_]?)(_[^_ \n][^_\n]*_)z([^~]?)(~~[^~ \n][^~\n]*~~)z[@#][\w/:]+z (!?\[)([^]]+)(\])(\()([^)]+)(\))z(\[)([^]]+)(\])(\[)([^]]*)(\])z^(\s*\[)([^]]*)(\]:\s*)(.+)z[^\\\s]+r?   )r0   rl   c                 K   rr   rs   rt   rv   r:   r:   r;   ru   i  rx   zMarkdownLexer.__init__N)#r1   r2   r3   r4   r5   r   r6   r@   r7   rA   rB   rD   r   r
   r   rE   r   
Subheadingr   r   r   r   r   r   r   r	   r   Deletedr   Entityr   r8   Labelr9   ru   r:   r:   r:   r;   r'     sf    
)Lr'   c                   @   s  e Zd ZdZdZdZdgZdgZdgZe	j
Zdd Zd	d
 Zdeeeejf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fdeejfdeejfdeejfdeejfdeeeefdefdefededgeddddefgdefdejfd eeejefd!eeejfd"eeejfd#eeejfd$eeejefd%eeejefd&ejfd'ejfd(ejfd)ejfd*ejfd+ej fd,ej!fd-eeejefd.eeejeej"efd/eeejefd0eej"fd1efd2efgd3Z#d4d5 Z$d6S )7r(   z<
    For TiddlyWiki5 markup.

    .. versionadded:: 2.7
    tiddlerz$https://tiddlywiki.com/#TiddlerFilestidz*.tidztext/vnd.tiddlywikic                 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 |
|E dH  |dt|dfV  dS )	zV
        match args: 1:backticks, 2:lang_name, 3:newline, 4:code, 5:backticks
        r   rM   rO   rP   rQ   NrR   rS   )r[   rN   r\   r   r]   r   r_   r`   r   r   rd   r   r:   r:   r;   r   {  s$   
z"TiddlyWiki5Lexer._handle_codeblockc                 c   s    ddl m} |dt|dfV  |dt|dfV  d}| jr4z|d}W n	 ty3   Y nw |d}|du rH|dt|fV  dS tg ||E dH  |dt|dfV  dS )	zP
        match args: 1:style tag 2:newline, 3:code, 4:closing style tag
        r   rM   rO   rP   NcssrQ   rR   )	r[   rN   r\   r   r]   r_   r   r   rd   r   r:   r:   r;   _handle_cssblock  s"   
z!TiddlyWiki5Lexer._handle_cssblockz^(title)(:\s)(.+\n)z^(!)([^!].+\n)z^(!{2,6})(.+\n)z^(\s*)([*#>]+)(\s*)(.+\n)rl   rm   z^(<<<.*\n)([\w\W]*?)(^<<<.*$)z^(\|.*?\|h)$z^(\|.*?\|[cf])$z^(\|.*?\|k)$z^(;.*)$z^(```\n)([\w\W]*?)(^```$)z ^(```)(\w+)(\n)([\w\W]*?)(^```$)z$^(<style>)(\n)([\w\W]*?)(^</style>$)keywords)z\definez\endcaptioncreatedmodifiedtagstitletype^z\b)prefixsuffixro   z\d{17}z(\s)(//[^/]+//)((?=\W|\n))z(\s)(\^\^[^\^]+\^\^)z(\s)(,,[^,]+,,)z(\s)(__[^_]+__)z(\s)(''[^']+'')((?=\W|\n))z(\s)(~~[^~]+~~)((?=\W|\n))z	<<[^>]+>>z\$\$[^$]+\$\$z\$\([^)]+\)\$z^@@.*$z	</?[^>]+>z`[^`]+`&\S*?;z(\[{2})([^]\|]+)(\]{2})z$(\[{2})([^]\|]+)(\|)([^]\|]+)(\]{2})z(\{{2})([^}]+)(\}{2})z(\b.?.?tps?://[^\s"]+)z[\w]+r?   )r0   r   rl   c                 K   rr   rs   rt   rv   r:   r:   r;   ru     rx   zTiddlyWiki5Lexer.__init__N)%r1   r2   r3   r4   r5   r   r6   r@   r7   rA   rB   rD   r   r   r
   r   r   r   rE   r   r   r   r   r   r   r   r   r	   r   r   Integerr   r   Regexr8   r9   ru   r:   r:   r:   r;   r(   n  s    Ur(   c                   @   s  e Zd ZdZdZdZddgZg ZdgZe	j
Zdd Zd	d
 Zdd Zdd Zdd Zdd ZdZdZdZdZh dZh dZh dZedh Zh dZh dZh dZh dZh dZh d Zh d!Z i d"d#e!e"e#e"e$d$fd%e!e%j&e%j&e%j&e"fd&e!e%j'e"fe(ed'd(e)j*j+fe(ee)j*j+fd),d*-eeee)j.fd+,ee)j*j+fd,j,ed-e d.d/e)j*j+fe/d0e/d1e/d2gd$d3e!e$e"d4fd5e!e$e)j.fd6,ee)j0fgd0d7e#d8fd9e#fd:e#fgd1g d;e#fe/d<d=e!e%j1e%j2d>fd?e%j3d@fdAe%j1dBfe/dCdDee dEf e!e$e)j4e$e5e6dFgdGe$e)j.dHfdId*-ee7dJdKee dEf e!e$e)j4e$e5e6dFgdGe$e)j.e$fdLd*-ee7dJdKee dEf e!e$e)j4e$e5e6dFgdGe$e)j.e$dMfdN,d*-eeee!e$e)j.e"dOfdPe!e#e"e$e5e6d"dQgdGdRfdS,d*-ee!e$e)j0dTfdU,d*-ee!e$e)j0e"e$fdVe!e$e)j0dWfdXe!e$e)j0dYfdZe!e$e)j0d[fd\e!e$e)j0d]fd^e!e$e)j0d_fd`e!e$e)j0dafdbe!e$e)j0dcfdde!e$e)j0defdfe!e$e)j0dgfdhe!e$e)j0difdhe!e$e)j0djfdke!e$e)j0dlfdme!e$e)j0dnfdoe!e$e)j0dpfdqe!e$e)j0drfdse!e$e)j0e"e$fdte!e$e)j0efdue!e$e)j0e"e5e6d"dQgdGe$fdve!e$e)j0e"e$fdwe!e$e)j0efdxe!e$e)j0e"e5e6d"dQgdGe$fdye!e$e)j0e"e$fdze!e$e)j0efd{e!e$e)j0e"e5e6d"dQgdGe$fdS,d*-ee!e$e)j0dTfdU,d*-ee!e$e)j0e"e$fd|j,d*-ed}e!e$e#e$e5e6d"d~gdGe8e)j.e$dfde!e$e5e6d"dgdGe$d~fdj,d*-ed}e!e$e)j.e$dfdFe/dCde)j0fde)j0fgdMde$d4fde$d4fe/d1e/d2gdHde$d4fde!e$e)j9e8fde$fe/d1e/d2gdde$d4fde:d4fgdBe/dd=e!e%j1e%j3dfd?e%j2dfdAe%j1d4fe/d1e/dgd@e/dde!e%j3e%j1dfd?e%j3d4fdAe%j2dfe/d1e/dgde/dd=e!e%j2e%j3d4fd?e%j2dfdAe%j2dfe/d1e/dgd>e/dde!e%j2e%j1d4fd?e%j2dfdAe%j2dfe/d1e/dgdde"fde$fgee#ddj,d*-ed}e!e$e5e6d"d~gdGe8e)j.e$fde$d4fe/d1e/d2gd~de$d4fe/d1e/d2gdCde;j<fde!e$e)j=dfdd*-e e!e$e"e)j*e"e$fdd*-e e!e$e"e)j*e"e$fde$dfde!e$e)j0e$e>e$fde$d4fde!e$e)j0dTfde!e$e)j0e"e$fg	dde$d4fde$fe/d1e/d2gi dde;j<fde"fded*-ef e!e)j*e$dfdd*-e  e!e)j*e$dfde e!e)j4e$dfe?dgdde!e:e$dfde$d4fde:d4fe/dCgee)j0dde$d4fde$fde!e)j.e8fe/d1e/d2gdRde!e"e$d4fde!e"e$e5e6d"dQgdGfde!e"e$e5e6d"dQgdGe$e%j'fde!e$e5e6d"dQgdGe$fde!e$e5e6d"dQgdGe$dfe/d0e/d1e/d2gdde:d4fde!e$e5e6d"dQgdGe$fgee%j&d<de)j@fgd8de:d4fe/d1de#d4fe/d2gdOde$d4fe/d1e/d2gde/d<e/d2gdQe/dCde"fde!e8e"e>jAdfde!e8e"e>jBdfde!e8e"dfde)j9fgdde"d4fe/dCgee>dde>jBd4fe/dCgee>jBdde>jAd4fe/dCgee>jAdTde$d4fe/dƃgdde$dfde$d4fe/dƃgde/dCde"fde!e8e"e>jAdfde!e8e"e>jBdfde!e8e"dfde)j9fgdde"d4fde$dfe/dCgee>i dde>jBd4fde$dfe/dCgee>jBdde>jAd4fde$dfe/dCgee>jAdedЃded҃dedԃdedփded؃dedڃded܃dedރdeddeddeddeddedeCdedeCdedeCedeDee%j1ee%j3ee%j2ee:dZEdS )r)   a,  
    For MediaWiki Wikitext.

    Parsing Wikitext is tricky, and results vary between different MediaWiki
    installations, so we only highlight common syntaxes (built-in or from
    popular extensions), and also assume templates produce no unbalanced
    syntaxes.

    .. versionadded:: 2.15
    Wikitextz'https://www.mediawiki.org/wiki/Wikitextwikitext	mediawikiztext/x-wikic                 C   s*   d | tttjttdftdtdgS )N(?i)(</)({})(\s*)(>)r/   entityr|   )formatr
   r   r   r   r   r	   tag_namer:   r:   r;   nowiki_tag_rules  s   zWikitextLexer.nowiki_tag_rulesc                 C   s    d | ttttjttdfgS )Nz(?si)(.*?)(</)({})(\s*)(>)r/   )r   r
   r   r   r   r   r   r   r:   r:   r;   plaintext_tag_rules'  s   
z!WikitextLexer.plaintext_tag_rulesc                 C   s.   d | tttjttdfd | t|fgS )Nr   r/   z(?si).+?(?=</{}\s*>))r   r
   r   r   r   r   r   )r   rg   r:   r:   r;   delegate_tag_rules-  s   z WikitextLexer.delegate_tag_rulesc                 C   s   d| fd| fd| fgS )Nr   z[^\S\n]+(?s).r:   )tokenr:   r:   r;   
text_rules4  s   zWikitextLexer.text_rulesc                 c   s:   ddl m} | }d}d}	 |d|}||d | dkr!n|d }q|dkr8| j|d	d
gdE d H  d S |d | }| j|d	d
gdE d H  |d| tdfV  d }||d d  }	td|}
t	|
dkr|
d d }z||}W n	 t
y   Y nw |d u r| | d t|	fV  d S ||	E d H  d S )Nr   rM   T>rP   --rO   rz   r0   attrstackrQ   \blang=("|\'|)(\w+)(\1))r[   rN   r]   r{   rd   r\   r   rA   findallra   r   r   )re   rf   ctxrN   attr_contentr\   indexr   rg   content
lang_matchr   r:   r:   r;   handle_syntaxhighlight;  s<   z$WikitextLexer.handle_syntaxhighlightc           
      c   s   |  }d}d}	 |d|}||d | dkrn|d }q
|dkr2| j|dd	gd
E d H  d S |d | }||d d  }| j|dd	gd
E d H  |d| tdfV  td|}t|dkri|d d nd}	|	dkrzt |E d H  d S | | d t	|fV  d S )Nr   Tr   rP   r   rO   rz   r0   r   r   rQ   r   lilypond)
r]   r{   rd   r\   r   rA   r   ra   r   r   )
re   rf   r   r   r\   r   r   r   r   r   r:   r:   r;   handle_scorea  s,   zWikitextLexer.handle_scorez0 %!"$&\'()*,\-./0-9:;=?@A-Z\\\^_`~+\u0080-\uFFFFzT(?:\t|&nbsp;|&\#0*160;|&\#[Xx]0*[Aa]0;|[ \xA0\u1680\u2000-\u200A\u202F\u205F\u3000])zb(?:[0-9.]+|\[[0-9a-f:.]+\]|[^\x00-\x20"<>\[\]\x7F\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFFFD])zF[^\x00-\x20"<>\[\]\x7F\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFFFD]>	   Z__NOCC__Z__NOTC__Z__NOCONTENTCONVERT__Z__FORCETOC__Z__NOTITLECONVERT__Z__NOGALLERY__Z__NOEDITSECTION__Z__TOC__Z	__NOTOC__>
   Z__EXPECTUNUSEDCATEGORY__Z__NONEWSECTIONLINK__Z__DISAMBIG__Z__NOINDEX__Z__NOGLOBAL__Z__HIDDENCAT__Z__NEWSECTIONLINK__Z__EXPECTED_UNCONNECTED_PAGE__Z	__INDEX__Z__STATICREDIRECT__>   zftps://zbitcoin:zircs://zgeo:zhttp://z	telnet://znntp://zsftp://zworldwind://zsms:zsip:zredis://zxmpp:zirc://zmagnet:zsips:zhttps://zmms://zgit://zurn:zftp://ztel:zsvn://zssh://znews:z	gopher:////zmailto:r   ><   Zh1rubyZsampsuprh   rbr   iZabbrthdtZh3tttimeZh5rpdatalinktdhrbdddelZbdiZbdostrongdivri   ZkbdZsmalloltablevarZh2ZfontZulstrikedlsubuqtrmetartZemZh4ZlidfnpZh6sZwbrmarkbigZrtcbrspanZciteZ
blockquotecenter>    ZtemplatestylesrefZincludeonlytvar	languagescategorytreeimagemapsectionZpoemZlangconvertceZonlyincludedynamicpagelistZscoreZmapframepreZsyntaxhighlightZmaplinkgalleryZ
referencesrssinputboxnowikichem	translatehierotemplatedatatimelinegraphr   
charinsertZ	noinclude>5   kkzkk-latnzzh-mozkk-cyrlenzzh-hkuzzen-x-piglatinzzh-sgzban-x-palmleafzkk-kzzike-canszcrh-latnZganzwuu-hanszsr-eczike-latnzzh-twzuz-latnzku-latnztg-latnzsr-elZwuuzkk-cnzzh-myzban-balizgan-hanszshi-tfngzkk-arabZtlyztly-cyrlzcrh-cyrlzban-x-dharmazzh-hantzzh-hanszshi-latnzuz-cyrltgZshizwuu-hantsrZbanz	ban-x-pkuZcrhzhzsh-latniuzzh-cnzkk-trzgan-hantzku-arabzsh-cyrlZku>   ZSERVERZARTICLEPATHZ
SERVERNAMEZ	STYLEPATHPAGEIDZ
SCRIPTPATHINT>Q   NUMBEROFUSERS=TALKPAGENAMEZCONTENTLANGZ	LOCALWEEKZLOCALDOW	PAGENAMEEREVISIONUSERROOTPAGENAMEEZLOCALTIMESTAMPSUBPAGENAMEZCURRENTTIMEZCURRENTDAY2SUBPAGENAMEEZ
CURRENTDAYFULLPAGENAMEESUBJECTSPACEEARTICLEPAGENAMEARTICLESPACEENUMBEROFADMINSZDIRECTIONMARKNUMBEROFFILESZLOCALDAYNAMEZCURRENTTIMESTAMPZCURRENTMONTHNAMEGENROOTPAGENAME	NAMESPACENUMBEROFPAGESCASCADINGSOURCESZSITENAMEREVISIONMONTH1ZCURRENTMONTH2ZCURRENTVERSIONZ	LOCALHOURNUMBEROFARTICLESZCURRENTYEARSUBJECTPAGENAMEREVISIONMONTH
TALKSPACEEr   REVISIONDAYARTICLEPAGENAMEEREVISIONTIMESTAMPARTICLESPACEZLOCALMONTH1ZCURRENTMONTH1Z	LOCALYEARZ
LOCALMONTHZLOCALMONTHNAMEGENZ	LOCALDAY2ZDIRMARKZLOCALMONTHABBREVNUMBEROFACTIVEUSERSZPAGELANGUAGEPAGENAMEZREVISIONSIZE	TALKSPACEZCURRENTMONTHNAMEZCURRENTMONTHZ	LOCALTIMEZCURRENTWEEK
NAMESPACEESUBJECTSPACEZ
CURRENTDOWNUMBEROFEDITSZCURRENTMONTHABBREVNAMESPACENUMBERSUBJECTPAGENAMEETALKPAGENAMEEBASEPAGENAMEZCURRENTDAYNAMEZLOCALMONTH2ZLOCALMONTHNAMEREVISIONYEARBASEPAGENAMEEZCONTENTLANGUAGEZLOCALDAYZCURRENTHOURFULLPAGENAME
REVISIONIDREVISIONDAY2>   ZLCZNSEZBIDIZANCHORENCODEz
\#LANGUAGEZGRAMMARZFILEPATHZLCFIRSTZ	URLENCODEZFULLURLEZLOCALURLZ	FORMATNUMZNSZUCFIRSTZCANONICALURLZFULLURLZGENDERZCANONICALURLEZPLURALr6  ZPADRIGHTZPADLEFTZ	LOCALURLEr7  ZUC>7   rP  ZDISPLAYTITLEZDEFAULTCATEGORYSORTrU  ZPAGESINCATEGORYrF  rG  PAGESIZErQ  rH  rR  Z	PAGESINNSr8  rI  rV  rW  rX  r:  ZDEFAULTSORTrY  ZPAGESINNAMESPACErJ  rZ  r[  ZDEFAULTSORTKEYr\  r;  ZPROTECTIONLEVELr<  Z
PAGESINCATr=  rK  rS  r]  r>  rL  r^  r?  rT  ZNUMBERINGROUPrM  r@  rA  r_  rN  rB  Z
NUMINGROUPrC  rD  r`  ZPROTECTIONEXPIRYrE  rO  r7  ra  r0   z~(?xi)
                (\A\s*?)(\#REDIRECT:?) # may contain a colon
                (\s+)(\[\[) (?=[^\]\n]* \]\]$)
            zredirect-innerz^(={2,6})(.+?)(\1)(\s*$\n)z^(=.+?=)(\s*$\n)z(?i))r   z(?i)\b(?:{}){}{}*|z\b(?:RFC|PMID){}+[0-9]+\bz(?x)
                \bISBN {nbsp_char}
                (?: 97[89] {nbsp_dash}? )?
                (?: [0-9] {nbsp_dash}? ){{9}} # escape format()
                [0-9Xx]\b
            z(?:-|))	nbsp_charZ	nbsp_dashlistrl   r|   z(\]\])(\s*?\n)r/   z(\#)([^#]*?)z	(?i)[{}]+z^;r   z^[#:*]+z^-{4,}z~{3,5}r   z('')(''')(?!')inline-italic-boldz'''(?!')inline-boldz''(?!')inline-italicZreplaceablez(?xi)
                (\[\[)
                    (File|Image) (:)
                    ((?: [%s] | \{{2,3}[^{}]*?\}{2,3} | <!--[\s\S]*?--> )*)
                    (?: (\#) ([%s]*?) )?
                #zwikilink-namerm   zmedialink-innera   (?xi)
                (\[\[)(?!%s) # Should not contain URLs
                    (?: ([%s]*) (:))?
                    ((?: [%s] | \{{2,3}[^{}]*?\}{2,3} | <!--[\s\S]*?--> )*?)
                    (?: (\#) ([%s]*?) )?
                (\]\])
                /rZ   z(?xi)
                (\[\[)(?!%s)
                    (?: ([%s]*) (:))?
                    ((?: [%s] | \{{2,3}[^{}]*?\}{2,3} | <!--[\s\S]*?--> )*?)
                    (?: (\#) ([%s]*?) )?
                    (\|)
                zwikilink-innerzi(?xi)
                (\[)
                    ((?:{}) {} {}*)
                    (\s*)
                zextlink-innerz^(:*)(\s*?)(\{\|)([^\n]*)$r   r	  z(?i)(<)({})\bztag-inner-ordinaryz(?i)(</)({})\b(\s*)(>)z(?i)(<)(nowiki)\b)
tag-nowiki	tag-innerz(?i)(<)(pre)\b)tag-prerm  z(?i)(<)(categorytree)\b)tag-categorytreerm  z(?i)(<)(hiero)\b)	tag-hierorm  z(?i)(<)(math)\b)tag-mathrm  z(?i)(<)(chem)\b)tag-chemrm  z(?i)(<)(ce)\b)tag-cerm  z(?i)(<)(charinsert)\b)tag-charinsertrm  z(?i)(<)(templatedata)\b)tag-templatedatarm  z(?i)(<)(gallery)\b)tag-galleryrm  )	tag-graphrm  z(?i)(<)(dynamicpagelist)\b)tag-dynamicpagelistrm  z(?i)(<)(inputbox)\b)tag-inputboxrm  z(?i)(<)(rss)\b)tag-rssrm  z(?i)(<)(imagemap)\b)tag-imagemaprm  z#(?i)(</)(syntaxhighlight)\b(\s*)(>)z9(?si)(<)(syntaxhighlight)\b([^>]*?(?<!/)>.*?)(?=</\2\s*>)z?(?i)(<)(syntaxhighlight)\b(\s*?)((?:[^>]|-->)*?)(/\s*?(?<!--)>)z(?i)(</)(source)\b(\s*)(>)z0(?si)(<)(source)\b([^>]*?(?<!/)>.*?)(?=</\2\s*>)z6(?i)(<)(source)\b(\s*?)((?:[^>]|-->)*?)(/\s*?(?<!--)>)z(?i)(</)(score)\b(\s*)(>)z/(?si)(<)(score)\b([^>]*?(?<!/)>.*?)(?=</\2\s*>)z5(?i)(<)(score)\b(\s*?)((?:[^>]|-->)*?)(/\s*?(?<!--)>)z(?xi)
                (-\{{) # Use {{ to escape format()
                    ([^|]) (\|)
                    (?: 
                        (?: ([^;]*?) (=>))?
                        (\s* (?:{variants}) \s*) (:)
                    )?
                )variantszlc-rawzlc-innerzS(?xi)
                (-\{)
                    ([a-z\s;-]*?) (\|)
                zlc-flagz(?xi)
                (-\{{) (?!\{{) # Use {{ to escape format()
                    (?: (\s* (?:{variants}) \s*) (:))?
                z[^{<]+r   z(?=\[\[)z\]\]z(\|)([^\n=|]*)(=)z\|zquote-commonz(?=\]\]|\{\{|\}\})r>   )r/   rh  )r/   rg  text-italicz(''')('')(?!'))r/   ri  )r/   inline-bold-italic	text-boldr~  text-bold-italicr-   ;z{(?xi)
                (;)
                (?: ([^;]*?) (=>))?
                (\s* (?:{variants}) \s*) (:)
                z	;?\s*?\}-z\}-z<!--[\s\S]*?(?:-->|\Z)zk(?x)
                (\{{3})
                    ([^|]*?)
                    (?=\}{3}|\|)
                zparameter-innerz(?i)(\{\{)(\s*)(%s)(\s*)(\}\})z(\{\{)(\s*)(%s)(\s*)(\}\})z\{\{ztemplate-begin-spacez(?i)(<)(tvar)\b(\|)([^>]*?)(>)z</>z(?i)(<)(tvar)\bz(?i)(</)(tvar)\b(\s*)(>)z\}{3}z(?i)(\#[%s]*?|%s)(:))r/   template-innerz(%s)(:)z(?i)([%s]*?)(:))r/   template-namer  z
(\s*?)(\|)z\}\}r  z(?x)
                    (?<=\|)
                    ( (?: (?! \{\{ | \}\} )[^=\|<])*? ) # Exclude templates and tags
                    (=)
                z^([ \t\n\r\0\x0B]*?)(\|\})z^([ \t\n\r\0\x0B]*?)(\|-+)(.*)$z(?x)
                ^([ \t\n\r\0\x0B]*?)(\|\+)
                # Exclude links, template and tags
                (?: ( (?: (?! \[\[ | \{\{ )[^|\n<] )*? )(\|) )?
                (.*?)$
                z(?x)
                ( ^(?:[ \t\n\r\0\x0B]*?)\| | \|\| )
                (?: ( (?: (?! \[\[ | \{\{ )[^|\n<] )*? )(\|)(?!\|) )?
                z(?x)
                ( ^(?:[ \t\n\r\0\x0B]*?)!  )
                (?: ( (?: (?! \[\[ | \{\{ )[^|\n<] )*? )(\|)(?!\|) )?
                ztable-headerz(?x)
                (!!|\|\|)
                (?:
                    ( (?: (?! \[\[ | \{\{ )[^|\n<] )*? )
                    (\|)(?!\|)
                )?
                r   :r.   z
nowiki-ishz(=)(\s*)(")z
attr-val-2z(=)(\s*)(')z
attr-val-1z(=)(\s*)z
attr-val-0z[\w:-]+z\s'"z/?\s*>ztag-attrrm  z/\s*>r   z\s*>ztag-attr-val-2ztag-attr-val-1ztag-attr-val-0z/?>rl  r'  rn  r#  ro  r  rx  r"  rp  r*  ry  r&  r{  r  rt  r.  ztag-timeliner,  rv  r$  rw  r-  rz  r%  rq  r   rr  r(  rs  r!  r+  )ru  r}  r  r  r|   N)Fr1   r2   r3   r4   r5   r   r6   r@   r7   rA   rB   rD   r   r   r   r   r   r   Z
title_charre  Zlink_addressZlink_char_classZdouble_slashes_iZdouble_slashesZ	protocolsZnon_relative_protocolsZ	html_tagsZparser_tagsZvariant_langsZmagic_vars_iZ
magic_varsZparser_functions_iZparser_functionsr
   r   r   r   r   r   rE   r   r   FunctionMagicr   joinr   r	   r   r   
EmphStrongr   rG   r   r   replacer   r8   r   r   	Multiliner   r   r   r   r   Singler    r   r9   r:   r:   r:   r;   r)     s|   
&
 
!&.

	


&

4=@BEHKNQTWZ]`cfilortwz|           
     +
  a  f  m  u  z

   

    

    

        $
	    2    7


    T    Z    p    w
     


	      0      @      C      I      N      R      [      `
      e
      j      n      v               
        
                                                                                                        
         
!        
"        #    r)   )3r4   rA   Zpygments.lexers.htmlr   Zpygments.lexers.javascriptr   Zpygments.lexers.cssr   Zpygments.lexers.lilypondr   Zpygments.lexers.datar   Zpygments.lexerr   r   r	   r
   r   r   r   r   r   Zpygments.tokenr   r   r   r   r   r   r   r   r   r   r   Zpygments.utilr   r   __all__r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r:   r:   r:   r;   <module>   s4    
,4!- ):8)y  