U
    YSh@                     @   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!m"Z" dd
l#m$Z$m%Z% ddddddddddddddg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Z2G d%d deZ3G d&d deZ4dS )'z
    pygments.lexers.markup
    ~~~~~~~~~~~~~~~~~~~~~~

    Lexers for non-HTML markup languages.

    :copyright: Copyright 2006-2025 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Literal)get_bool_optClassNotFoundBBCodeLexerMoinWikiLexerRstLexerTexLexer
GroffLexerMozPreprocHashLexerMozPreprocPercentLexerMozPreprocXulLexerMozPreprocJavascriptLexerMozPreprocCssLexerMarkdownLexerOrgLexerTiddlyWiki5LexerWikitextLexerc                   @   sp   e Zd ZdZdZdgZdgZdZd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   z7
    A lexer that highlights BBCode(-like) syntax.
    BBCodebbcodeztext/x-bbcodezhttps://www.bbcode.org/0.6z[^[]+z\[/?\w+tagz\[\s+z(\w+)(=)("?[^\s"\]]+"?)z(=)("?[^\s"\]]+"?)\]#pop)rootr/   N)__name__
__module____qualname____doc__namealiases	mimetypesurlversion_addedr   r   r
   r   	Attributer   r   tokens r?   r?   I/root/rtd-docs/venv/lib/python3.8/site-packages/pygments/lexers/markup.pyr       s(   c                   @   s   e Zd ZdZdZddgZg ZdgZdZd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   z.
    For MoinMoin (and Trac) Wiki markup.
    zMoinMoin/Trac Wiki markupz	trac-wikimoinztext/x-trac-wikizhttps://moinmo.in0.7z^#.*$z(!)(\S+)z^(=+)([^=]+)(=+)(\s*#.+)?$z(\{\{\{)(\n#!.+)?	codeblockz(\'\'\'?|\|\||`|__|~~|\^|,,|::)z^( +)([.*-])( )z^( +)([a-z]{1,5}\.)( )z\[\[\w+.*?\]\]z(\[[^\s\]]+)(\s+[^\]]+?)?(\])z^----+$z[^\n\'\[{!_~^,|]+\n.z\}\}\}r2   z\{\{\{z#pushz[^{}]+)r3   rC   N)r4   r5   r6   r7   r8   r9   	filenamesr:   r;   r<   re	MULTILINE
IGNORECASEflagsr   r
   r   r   r   Headingr   r   r   r   Builtin	NamespacePreprocr>   r?   r?   r?   r@   r   A   s@   

c                   @   s  e Zd ZdZdZdZdddgZddgZd	d
gZdZ	e
jZdd ZdZdZde
e e
e d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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d0efd1efgd2e fd&e e d3fd4e fgd5Z(d6d7 Z)d8d9 Z*d:S );r    aS  
    For reStructuredText markup.

    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.rstrB   c           
   	   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	rz||d
 }W n tk
r   Y nX |d
}t|}||d |d |d }|d kr@|d
t|fV  d S g }|d}d}|D ]P}	t|	|kr|t|dt|	d | fgf ||	|d  7 }n||	7 }qVt|||E d H  d S )Nr   get_lexer_by_name                        	   
      T )pygments.lexersrT   startr   groupr   r   Wordr   handlecodeblocksstripr   lenr   
splitlinesappendr   get_tokens_unprocessed)
selfmatchrT   lexerZ	indentionZindention_sizecodeinsZ	codelinesliner?   r?   r@   _handle_sourcecode   s:    
"

"zRstLexer._handle_sourcecodeu   '")]}>’”»!?u   ‐‑‒–— z((?=$)|(?=[-/:.,; \n\x00z]))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[^\\\n\[*`:]+rE   z[^`]+r2   `)r3   rr   rv   c                 K   s    t |dd| _tj| f| d S Nre   Tr   re   r   __init__rk   optionsr?   r?   r@   r{     s    zRstLexer.__init__c                 C   s   | d d dkr$| dd dkr$dS |  d}|  d|d }|dkr|d d |kr| |d  d	kr| |d  | |d  krd
S d S )NrV   z..rW   rE   g333333?
rU   z-=g      ?)find)textp1Zp2r?   r?   r@   analyse_text  s     
zRstLexer.analyse_textN)+r4   r5   r6   r7   r8   r;   r9   rF   r:   r<   rG   rH   rJ   rq   ZclosersZunicode_delimitersescapeZend_string_suffixr
   r   rK   r   r   r   r   r   r   rd   r   Tagr   Classr   Escaper	   InterpolVariabler=   StrongEmphr>   r{   r   r?   r?   r?   r@   r    o   s   
)  
  
:Rc                
   @   s  e Zd ZdZdZddgZdddgZdd	gZd
Zd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latexz*.texz*.auxz*.tocz
text/x-texztext/x-latexzhttps://tug.orgr`   z%.*?\nz[{}]z[&_^]z\\\[displaymathz\\\(
inlinemathz\$\$z\$z\\([a-zA-Z@_:]+|\S?)commandz\\$generalz[^\\$%&_^{}]+z\\([a-zA-Z]+|\S?)[0-9]+z[-=!+*/()\[\]]z[^=!+*/()\[\]\\$%&_^{}0-9-]+z\\\)r2   mathz\\\]z\[.*?\]\*)r   r3   r   r   r   r   c                 C   s(   dD ]}| d t | |kr dS qd S )N)z\documentclassz\inputz\documentstylez\relaxT)rg   )r   rb   r?   r?   r@   r   I  s    zTexLexer.analyse_textN)r4   r5   r6   r7   r8   r9   rF   r:   r;   r<   r   r   rL   r   Backtickr   r	   r   r   r   r   r=   r   r>   r   r?   r?   r?   r@   r!     sR   


)c                
   @   s   e Zd ZdZdZdddgZdddd	gZd
dgZdZd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.
    Groffgroffnroffmanz*.[1-9]z*.manz*.1pz*.3pmzapplication/x-troffz
text/troffz"https://www.gnu.org/software/groffr.   z	(\.)(\w+)requestz\.z[^\\\n]+textlineescapesrD   r2   z	\\"[^\n]*z\\[fn]\wz\\\(.{2}z	\\.\[.*\]ru   z\\\nz	"[^\n"]+"z\d+z\S+r0   )r3   r   r   r   c                 C   s`   | 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  r\d	S d S )
NrU   rE   FrW   z.\"TrX   z.TH g?)isalnumisspace)r   r?   r?   r@   r   }  s    zGroffLexer.analyse_textN)r4   r5   r6   r7   r8   r9   rF   r:   r;   r<   r
   r   r   r   r   r	   r   r   r   Doubler   r>   r   r?   r?   r?   r@   r"   P  s@   

 c                   @   s   e Zd ZdZdZegZg Zg ZdZd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#   zk
    Lexer for Mozilla Preprocessor files (with '#' as the marker).

    Other data is left untouched.
    mozhashpreprocKhttps://firefox-source-docs.mozilla.org/build/buildsystem/preprocessor.html2.0z^#expr	exprstart.+z(literal)(.*)#pop:2)ZdefineZundefifZifdefZifndefelseelifZelifdefZelifndefendifexpandfilterZunfilterr	   Zincludesubsterrorr2   )!z!=z==z&&z||z(defined)(\()z\)r   z__\w+?__z@\w+?@\w+rD   r0   z\S)r3   r   r   N)r4   r5   r6   r7   r8   r9   rF   r:   r;   r<   r   rN   r   r
   r   r   r   r   r   r   Decimalr   r   r   r>   r?   r?   r?   r@   r#     s8   
 	
c                   @   sB   e Zd ZdZdZegZg Zg ZdZdZ	dde
jdfdefgiZd	S )
r$   zk
    Lexer for Mozilla Preprocessor files (with '%' as the marker).

    Other data is left untouched.
    mozpercentpreprocr   r   r3   z^%r   r   N)r4   r5   r6   r7   r8   r9   rF   r:   r;   r<   r   rN   r   r>   r?   r?   r?   r@   r$     s   
c                       s<   e Zd ZdZdZdgZdgZg ZdZdZ	 fddZ
  ZS )	r%   ze
    Subclass of the `MozPreprocHashLexer` that highlights unlexed data with the
    `XmlLexer`.
    zXUL+mozpreproczxul+mozpreprocz*.xul.inr   r   c                    s   t  jttf| d S N)superr{   r   r#   r|   	__class__r?   r@   r{     s    zMozPreprocXulLexer.__init__r4   r5   r6   r7   r8   r9   rF   r:   r;   r<   r{   __classcell__r?   r?   r   r@   r%     s   c                       s<   e Zd ZdZdZdgZdgZg ZdZdZ	 fddZ
  ZS )	r&   zl
    Subclass of the `MozPreprocHashLexer` that highlights unlexed data with the
    `JavascriptLexer`.
    zJavascript+mozpreproczjavascript+mozpreprocz*.js.inr   r   c                    s   t  jttf| d S r   )r   r{   r   r#   r|   r   r?   r@   r{     s    z"MozPreprocJavascriptLexer.__init__r   r?   r?   r   r@   r&     s   c                       s<   e Zd ZdZdZdgZdgZg ZdZdZ	 fddZ
  ZS )	r'   ze
    Subclass of the `MozPreprocHashLexer` that highlights unlexed data with the
    `CssLexer`.
    zCSS+mozpreproczcss+mozpreprocz*.css.inr   r   c                    s   t  jttf| d S r   )r   r{   r   r$   r|   r   r?   r@   r{     s    zMozPreprocCssLexer.__init__r   r?   r?   r   r@   r'     s   c                   @   s  e Zd ZdZdZdZddgZddgZdgZd	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(   z
    For Markdown markup.
    Markdownz-https://daringfireball.net/projects/markdown/markdownmdz*.mdz
*.markdownztext/x-markdownz2.2c                 c   s&  ddl m} |dtj|dfV  |dtj|dfV  |dd k	r~|dt|dfV  |dt|dfV  |dt|dfV  d }| jrz||d	 }W n t
k
r   Y nX |d	}|d kr|d	t|fV  ntg ||E d H  |d
tj|d
fV  d S )Nr   rS   initiallangZ	afterlang
whitespaceextranewlinern   
terminator)ra   rT   rb   r   r   rc   r   r   re   rf   r   r   rj   rk   rl   rT   rm   rn   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)rr   rs   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)
              ru   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]+rE   )r3   rr   c                 K   s    t |dd| _tj| f| d S ry   rz   r|   r?   r?   r@   r{   i  s    zMarkdownLexer.__init__N)$r4   r5   r6   r7   r8   r;   r9   rF   r:   r<   rG   rH   rJ   r   r
   r   rK   r   
Subheadingr   r   r   r   r   r   r   r	   r   Deletedr   Entityr   r=   Labelr>   r{   r?   r?   r?   r@   r(     sf   
)Lc                %   @   sZ  e Zd ZdZdZdZdddgZdgZdgZd	Z	d
d Z
ddejfdeejejejfdeejejejfdeejejejfdeejejejfdeejejejfdeejejejfdeejejfdeejejfdeeeeeejejfdeeeejfdeejeeejfdeejejejfdeejeejfdeejeeejefdeej efdeej!ej"ej!fdefdeeje#j$fd eeje#j$fe
d!d"ej%fe
d#d#ejfe
d$d$e&fe
d%d%e&fe
d&d&ejfe
d'd(ej'fd)e#j$fd*ejfd+ej(fd,ee)ej*e)ej(e)fd-ee)ej*e)fd.ee)ej*e)fd/eee&fd0efd1efg#iZ+d2S )3r)   z
    For Org Mode markup.
    zOrg Modezhttps://orgmode.orgorgorgmodezorg-modez*.orgztext/orgz2.18c                 C   s   d|  d| dS )Nz(?<!\w)z(.|\n(?!\n))+?z(?!\w)r?   )rb   endr?   r?   r@   _inlinex  s    zOrgLexer._inliner3   z^# .*z^(\* )(COMMENT)( .*)z^(\*\*+ )(COMMENT)( .*)z^(\* )(DONE)( .*)z^(\*\*+ )(DONE)( .*)z^(\* )(TODO)( .*)z^(\*\*+ )(TODO)( .*)z^(\* .+?)( :[a-zA-Z0-9_@:]+:)?$z"^(\*\*+ .+?)( :[a-zA-Z0-9_@:]+:)?$z.^(?:( *)([+-] )|( +)(\* ))(\[[ X-]\])?(.+ ::)?z ^( *)([0-9]+[.)])( \[@[0-9]+\])?z/(?i)^( *#\+begin: *)((?:.|\n)*?)(^ *#\+end: *$)z?(?i)^( *#\+begin_comment *\n)((?:.|\n)*?)(^ *#\+end_comment *$)z6(?i)^( *#\+begin_src .*)((?:.|\n)*?)(^ *#\+end_src *$)z;(?i)^( *#\+begin_\w+)( *\n)((?:.|\n)*?)(^ *#\+end_\w+)( *$)z^(#\+\w+:)(.*)$z+(?i)^( *:\w+: *\n)((?:.|\n)*?)(^ *:end: *$)z\\\\$z+(?i)^( *(?:DEADLINE|SCHEDULED): )(<.+?> *)$z(?i)^( *CLOSED: )(\[.+?\] *)$r   z\*+/=~z\+_z_+rw   z\{\{\{.+?\}\}\}z(?<!\[)\[fn:.+?\]z (?s)(\[\[)(.*?)(\]\[)(.*?)(\]\])z(?s)(\[\[)(.+?)(\]\])z(<<)(.+?)(>>)z^( *)(\|[ -].*?[ -]\|)$z[^#*+\-0-9:\\/=~_<{\[|\n]+z[#*+\-0-9:\\/=~_<{\[|\n]N),r4   r5   r6   r7   r8   r;   r9   rF   r:   r<   r   r   Singler
   r   rK   rN   r   r   Errorr   r   r   Promptr   r   r   rd   r   r   	Multiliner   rM   	DecoratorSpecialr   Dater   r   
EmphStrongr   r   r=   r>   r?   r?   r?   r@   r)   m  s   
c                   @   s  e Zd ZdZdZdZdgZdgZdgZd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d0eeejefd1eej#fd2efd3efgd4Z$d5d6 Z%d7S )8r*   z!
    For TiddlyWiki5 markup.
    tiddlerz$https://tiddlywiki.com/#TiddlerFilestidz*.tidztext/vnd.tiddlywikiz2.7c                 c   s   ddl m} |dt|dfV  |dt|dfV  |dt|dfV  d}| jrz||d }W n tk
r   Y nX |d}|dkr|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   rS   rU   rV   rW   NrX   rY   )ra   rT   rb   r   rc   r   re   rf   r   r   rj   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rhz|d}W n tk
rf   Y nX |d}|dkr|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   rS   rU   rV   NcssrW   rX   )	ra   rT   rb   r   rc   re   r   r   rj   r   r?   r?   r@   _handle_cssblock  s    
z!TiddlyWiki5Lexer._handle_cssblockz^(title)(:\s)(.+\n)z^(!)([^!].+\n)z^(!{2,6})(.+\n)z^(\s*)([*#>]+)(\s*)(.+\n)rr   rs   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suffixru   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]+rE   )r3   r   rr   c                 K   s    t |dd| _tj| f| d S ry   rz   r|   r?   r?   r@   r{   s  s    zTiddlyWiki5Lexer.__init__N)&r4   r5   r6   r7   r8   r;   r9   rF   r:   r<   rG   rH   rJ   r   r   r
   r   r   r   rK   r   r   r   r   r   r   r   r   r	   r   r   Integerr   r   Regexr=   r>   r{   r?   r?   r?   r@   r*     s    Uc                Q   @   s"  e Zd ZdZdZdZddgZg ZdgZd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ddddddddd h	Zd!d"d#d$d%d&d'd(d)d*h
Zd+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFhZedFh ZdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddh<Zddddddddddddddddddddddddddddddddh Zddddddddddddddddddddddddddddddddddddddddddddddh.ZdddddddhZddddddddddddddddddddddddddddddddddddddddd ddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(hQZd)d*d+d,d-d.d/d0d1d2dҐd3d4d5d6d7d8d9d:d;dӐd<d=d>d?hZ dddܐd@dAdBddddddCdDddddd	d
ddddEdFdGdHdIdddddddddddddddd d!d"d#d$d%d&d'd(dҐdJdKdLh7Z!dMe"e#e$e#e%dNfdOe"e&j'e&j'e&j'e#fdPe"e&j(e#fe)edQdRe*j+j,fe)ee*j+j,fdS-dT.eeee*j/fdUe dVe*j+j,fdWj-edXe dYdZe*j+j,fe0d[e0d\e0d]gd^e"e%e#d_fd`e"e%e*j/fdae dbe*j1fgdce$dXfdde$fdee$fgdfe$fe0dgdhe"e&j2e&j3difdje&j4dkfdle&j2dmfe0dndo-ee dpe"e%e*j5e%e6e7dqgdre%e*j/dsfdt-dT.ee8dudvee dpe"e%e*j5e%e6e7dqgdre%e*j/e%fdw-dT.ee8dudvee dpe"e%e*j5e%e6e7dqgdre%e*j/e%dxfdy-dT.eeee"e%e*j/e#dzfd{e"e$e#e%e6e7d|d}gdrdyfd~-dT.ee"e%e*j1dfd-dT.ee"e%e*j1e#e%fde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1dfde"e%e*j1e#e%fde"e%e*j1efde"e%e*j1e#e6e7d|d}gdre%fde"e%e*j1e#e%fde"e%e*j1efde"e%e*j1e#e6e7d|d}gdre%fde"e%e*j1e#e%fde"e%e*j1efde"e%e*j1e#e6e7d|d}gdre%fd~-dT.ee"e%e*j1dfd-dT.ee"e%e*j1e#e%fdj-dT.ede"e%e$e%e6e7d|dgdre9e*j/e%dfde"e%e6e7d|dgdre%dfdj-dT.ede"e%e*j/e%dfg*e0dnde*j1fde*j1fgde%d_fde%d_fe0d\e0d]gde%d_fde"e%e*j:e9fde%fe0d\e0d]gde%d_fde;d_fge0ddhe"e&j2e&j4dfdje&j3dfdle&j2d_fe0d\e0dge0dde"e&j4e&j2dfdje&j4d_fdle&j3dfe0d\e0dge0ddhe"e&j3e&j4d_fdje&j3dfdle&j3dfe0d\e0dge0dde"e&j3e&j2d_fdje&j3dfdle&j3dfe0d\e0dgde#fde%ffee$dj-dT.ede"e%e6e7d|dgdre9e*j/e%fde%d_fe0d\e0d]gde%d_fe0d\e0d]gde<j=fde"e%e*j>dfdǠ-dT.ee"e%e#e*j+e#e%fdȠ-dT.ee"e%e#e*j+e#e%fde%dfde"e%e*j1e%e?e%fde%d_fde"e%e*j1dfde"e%e*j1e#e%fg	de%d_fde%fe0d\e0d]gde<j=fde#fdР-edT.e e"e*j+e%dfdҠ-dT.e!e"e*j+e%dfde dԝe"e*j5e%dfe@dՃgde"e;e%dfde%d_fde;d_fe0dnfee*j1de%d_fde%fde"e*j/e9fe0d\e0d]gde"e#e%d_fde"e#e%e6e7d|d}gdrfde"e#e%e6e7d|d}gdre%e&j(fde"e%e6e7d|d}gdre%fde"e%e6e7d|d}gdre%dfe0d[e0d\e0d]gde;d_fde"e%e6e7d|d}gdre%ffee&j'de*jAfgde;d_fe0d\de$d_fe0d]gde%d_fe0d\e0d]ge0dge0d]ge0dnde#fde"e9e#e?jBdfde"e9e#e?jCdfde"e9e#dfde*j:fgde#d_fe0dnfee?de?jCd_fe0dnfee?jCde?jBd_fe0dnfee?jBde%d_fe0dgde%dfde%d_fe0dge0dnde#fde"e9e#e?jBdfde"e9e#e?jCdfde"e9e#dfde*j:fgde#d_fde%dfe0dnfee?de?jCd_fde%dfe0dnfee?jCde?jBd_fde%dfe0dnfee?jBedededededededededededededeDddredeDddredeDddredeEee&j2ee&j4ee&j3ee;d8ZFdS (  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.
    Wikitextz'https://www.mediawiki.org/wiki/Wikitextwikitext	mediawikiztext/x-wikiz2.15c                 C   s,   d|  dt ttjttdftdtdgS )N	(?i)(</)(	)(\s*)(>)r2   entityr   )r
   r   r   r   r   r	   tag_namer?   r?   r@   nowiki_tag_rules  s      zWikitextLexer.nowiki_tag_rulesc                 C   s"   d|  dt tttjttdfgS )Nz(?si)(.*?)(</)(r   r2   )r
   r   r   r   r   r   r   r?   r?   r@   plaintext_tag_rules  s       z!WikitextLexer.plaintext_tag_rulesc                 K   s6   d|  dt ttjttdfd|  dt|f|fgS )Nr   r   r2   z(?si).+?(?=</z\s*>))r
   r   r   r   r   r   )r   rm   Zlexer_kwargsr?   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_rules  s    zWikitextLexer.text_rulesc                 c   s<  ddl m} | }d}d}|d|}||d | dkr>qH|d }q|dkrl| 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
k
r   Y nX |d kr(| | d t|	fV  n||	E d H  d S )Nr   rS   >rV   --rU   r   r3   attrstackrW   \blang=("|\'|)(\w+)(\1))ra   rT   rc   r   rj   rb   r   rG   findallrg   r   r   )rk   rl   ctxrT   attr_contentrb   indexr   rm   content
lang_matchr   r?   r?   r@   handle_syntaxhighlight  s4    

z$WikitextLexer.handle_syntaxhighlightc           
      c   s
  |  }d}d}|d|}||d | dkr2q<|d }q|dkr`| 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r|d d nd}	|	dkrt |E d H  n| | d t	|fV  d S )Nr   r   rV   r   rU   r   r3   r   r   rW   r   lilypond)
rc   r   rj   rb   r   rG   r   rg   r   r   )
rk   rl   r   r   rb   r  r   r  r  r   r?   r?   r@   handle_score  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__FORCETOC__Z__NOCONTENTCONVERT__Z__NOCC__Z__NOEDITSECTION__Z__NOGALLERY__Z__NOTITLECONVERT__Z__NOTC__Z	__NOTOC__Z__TOC__Z__EXPECTUNUSEDCATEGORY__Z__HIDDENCAT__Z	__INDEX__Z__NEWSECTIONLINK__Z__NOINDEX__Z__NONEWSECTIONLINK__Z__STATICREDIRECT__Z__NOGLOBAL__Z__DISAMBIG__Z__EXPECTED_UNCONNECTED_PAGE__zbitcoin:zftp://zftps://zgeo:zgit://z	gopher://zhttp://zhttps://zirc://zircs://zmagnet:zmailto:zmms://znews:znntp://zredis://zsftp://zsip:zsips:zsms:zssh://zsvn://ztel:z	telnet://zurn:zworldwind://zxmpp:z//ZabbrbZbdiZbdobigZ
blockquotebrr   centerZcitern   datadddeldfndivdldtZemZfontZh1Zh2Zh3Zh4Zh5Zh6hriro   ZkbdZlilinkmarkmetaolpqrbrprtZrtcrubysZsampZsmallspanstrikestrongsubsuptabletdthtimetrttuZulvarZwbrgraphZ
charinsertZrssZchemZcategorytreeZnowikiZinputboxr   ZhieroZscorepreref	translateZimagemapZtemplatestyles	languagesZ	noincludeZmapframesectionZpoemZsyntaxhighlightZincludeonlytvarZonlyincludeZtemplatedataZlangconvertZtimelineZdynamicpagelistZgalleryZmaplinkZceZ
referenceszhzzh-hanszzh-hantzzh-cnzzh-hkzzh-mozzh-myzzh-sgzzh-twZwuuzwuu-hanszwuu-hantuzzuz-latnzuz-cyrlZtlyztly-cyrltgztg-latnsrzsr-eczsr-elZshizshi-tfngzshi-latnzsh-latnzsh-cyrlZkuzku-arabzku-latniuzike-canszike-latnZganzgan-hanszgan-hantenzen-x-piglatinZcrhzcrh-cyrlzcrh-latnZbanzban-balizban-x-dharmazban-x-palmleafz	ban-x-pkuZARTICLEPATHINTZPAGEIDZ
SCRIPTPATHZSERVERZ
SERVERNAMEZ	STYLEPATHr   r   ZBASEPAGENAMEZBASEPAGENAMEEZCASCADINGSOURCESZCONTENTLANGUAGEZCONTENTLANGZ
CURRENTDAYZCURRENTDAY2ZCURRENTDAYNAMEZ
CURRENTDOWZCURRENTHOURZCURRENTMONTHZCURRENTMONTH2ZCURRENTMONTH1ZCURRENTMONTHABBREVZCURRENTMONTHNAMEZCURRENTMONTHNAMEGENZCURRENTTIMEZCURRENTTIMESTAMPZCURRENTVERSIONZCURRENTWEEKZCURRENTYEARZDIRECTIONMARKZDIRMARKZFULLPAGENAMEZFULLPAGENAMEEZLOCALDAYZ	LOCALDAY2ZLOCALDAYNAMEZLOCALDOWZ	LOCALHOURZ
LOCALMONTHZLOCALMONTH2ZLOCALMONTH1ZLOCALMONTHABBREVZLOCALMONTHNAMEZLOCALMONTHNAMEGENZ	LOCALTIMEZLOCALTIMESTAMPZ	LOCALWEEKZ	LOCALYEARZ	NAMESPACEZ
NAMESPACEEZNAMESPACENUMBERZNUMBEROFACTIVEUSERSZNUMBEROFADMINSZNUMBEROFARTICLESZNUMBEROFEDITSZNUMBEROFFILESZNUMBEROFPAGESZNUMBEROFUSERSZPAGELANGUAGEZPAGENAMEZ	PAGENAMEEZREVISIONDAYZREVISIONDAY2Z
REVISIONIDZREVISIONMONTHZREVISIONMONTH1ZREVISIONSIZEZREVISIONTIMESTAMPZREVISIONUSERZREVISIONYEARZROOTPAGENAMEZROOTPAGENAMEEZSITENAMEZSUBJECTPAGENAMEZARTICLEPAGENAMEZSUBJECTPAGENAMEEZARTICLEPAGENAMEEZSUBJECTSPACEZARTICLESPACEZSUBJECTSPACEEZARTICLESPACEEZSUBPAGENAMEZSUBPAGENAMEEZTALKPAGENAMEZTALKPAGENAMEEZ	TALKSPACEZ
TALKSPACEEZANCHORENCODEZBIDIZCANONICALURLZCANONICALURLEZFILEPATHZ	FORMATNUMZFULLURLZFULLURLEZGENDERZGRAMMARz
\#LANGUAGEZLCZLCFIRSTZLOCALURLZ	LOCALURLEZNSZNSEZPADLEFTZPADRIGHTZPLURALZUCZUCFIRSTZ	URLENCODEZDEFAULTSORTZDEFAULTSORTKEYZDEFAULTCATEGORYSORTZNUMBERINGROUPZ
NUMINGROUPZPAGESINCATEGORYZ
PAGESINCATPAGESIZEZPROTECTIONEXPIRYZPROTECTIONLEVELZDISPLAYTITLEZPAGESINNAMESPACEZ	PAGESINNSz~(?xi)
                (\A\s*?)(\#REDIRECT:?) # may contain a colon
                (\s+)(\[\[) (?=[^\]\n]* \]\]$)
            redirect-innerz^(={2,6})(.+?)(\1)(\s*$\n)z^(=.+?=)(\s*$\n)z(?i))r   z(?i)\b(?:{}){}{}*|z\b(?:RFC|PMID)z	+[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listrr   r   z(\]\])(\s*?\n)r2   z(\#)([^#]*?)z(?i)[z]+z^;z^[#:*]+z^-{4,}z~{3,5}r   z('')(''')(?!')inline-italic-boldz'''(?!')inline-boldz''(?!')inline-italicreplaceablez(?xi)
                (\[\[)
                    (File|Image) (:)
                    ((?: [{}] | \{{{{2,3}}[^{{}}]*?\}}{{2,3}} | <!--[\s\S]*?--> )*)
                    (?: (\#) ([{}]*?) )?
                #wikilink-namers   medialink-innera  (?xi)
                (\[\[)(?!{}) # Should not contain URLs
                    (?: ([{}]*) (:))?
                    ((?: [{}] | \{{{{2,3}}[^{{}}]*?\}}{{2,3}} | <!--[\s\S]*?--> )*?)
                    (?: (\#) ([{}]*?) )?
                (\]\])
                r   r`   z(?xi)
                (\[\[)(?!{})
                    (?: ([{}]*) (:))?
                    ((?: [{}] | \{{{{2,3}}[^{{}}]*?\}}{{2,3}} | <!--[\s\S]*?--> )*?)
                    (?: (\#) ([{}]*?) )?
                    (\|)
                wikilink-innerzi(?xi)
                (\[)
                    ((?:{}) {} {}*)
                    (\s*)
                extlink-innerz^(:*)(\s*?)(\{\|)([^\n]*)$r3   r   z(?i)(<)({})\btag-inner-ordinaryz(?i)(</)({})\b(\s*)(>)z(?i)(<)(nowiki)\b)
tag-nowiki	tag-innerz(?i)(<)(pre)\b)tag-prerK  z(?i)(<)(categorytree)\b)tag-categorytreerK  z(?i)(<)(hiero)\b)	tag-hierorK  z(?i)(<)(math)\b)tag-mathrK  z(?i)(<)(chem)\b)tag-chemrK  z(?i)(<)(ce)\b)tag-cerK  z(?i)(<)(charinsert)\b)tag-charinsertrK  z(?i)(<)(templatedata)\b)tag-templatedatarK  z(?i)(<)(gallery)\b)tag-galleryrK  )	tag-graphrK  z(?i)(<)(dynamicpagelist)\b)tag-dynamicpagelistrK  z(?i)(<)(inputbox)\b)tag-inputboxrK  z(?i)(<)(rss)\b)tag-rssrK  z(?i)(<)(imagemap)\b)tag-imagemaprK  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*) (:)
                    )?
                )variantslc-rawlc-innerzS(?xi)
                (-\{)
                    ([a-z\s;-]*?) (\|)
                lc-flagz(?xi)
                (-\{{) (?!\{{) # Use {{ to escape format()
                    (?: (\s* (?:{variants}) \s*) (:))?
                z[^{<]+r   z(?=\[\[)z\]\]z(\|)([^\n=|]*)(=)z\|z(?=\]\]|\{\{|\}\})rD   quote-common)r2   rA  )r2   r@  text-italicz(''')('')(?!'))r2   rB  )r2   inline-bold-italic	text-boldtext-bold-italicr0   ;z{(?xi)
                (;)
                (?: ([^;]*?) (=>))?
                (\s* (?:{variants}) \s*) (:)
                z	;?\s*?\}-z\}-z<!--[\s\S]*?(?:-->|\Z)zk(?x)
                (\{{3})
                    ([^|]*?)
                    (?=\}{3}|\|)
                parameter-innerz"(?i)(\{{\{{)(\s*)({})(\s*)(\}}\}})z(\{{\{{)(\s*)({})(\s*)(\}}\}})z\{\{template-begin-spacez(?i)(<)(tvar)\b(\|)([^>]*?)(>)z</>z(?i)(<)(tvar)\bz(?i)(</)(tvar)\b(\s*)(>)z\}{3}z(?i)(\#[{}]*?|{})(:))r2   template-innerz({})(:)z(?i)([z]*?)(:))r2   template-namez
(\s*?)(\|)z\}\}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<] )*? )(\|)(?!\|) )?
                table-headerz(?x)
                (!!|\|\|)
                (?:
                    ( (?: (?! \[\[ | \{\{ )[^|\n<] )*? )
                    (\|)(?!\|)
                )?
                r   :r1   z(=)(\s*)(")
attr-val-2z(=)(\s*)(')
attr-val-1z(=)(\s*)
attr-val-0z[\w:-]+z\s'"z/?\s*>tag-attrz/\s*>r   z\s*>tag-attr-val-2tag-attr-val-1tag-attr-val-0z/?>)8r3   r;  r?  rr   rE  rG  rF  r^  rB  rA  r`  r@  r]  r\  r[  rC  rd  re  rg  rf  r$  rh  r   r  rH  z
nowiki-ishr   rl  rk  rj  rI  rK  ro  rr  rq  rp  rJ  rL  rM  rV  rN  rW  rY  rR  ztag-timelinerT  rU  rX  rO  rP  rQ  rS  r_  ra  rb  r   N)Gr4   r5   r6   r7   r8   r;   r9   rF   r:   r<   rG   rH   rJ   r   r   r   r   r  r  Z
title_charr>  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   rK   r   r   FunctionMagicformatjoinr   r	   r   r   r   r   rM   r   r   replacer   r=   r   r   r   r   r   r   r   r   r   r!   r   r>   r?   r?   r?   r@   r+   x  sl  &                                      
                                                                                  	                                                                                                                                                                          
  !


 

  
  

   
  

   
  
  
                      
 
  
  4




 


 

  	


   	


 
 
 
 

   
 	, 


	  
    )5r7   rG   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   r   Zpygments.utilr   r   __all__r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r?   r?   r?   r@   <module>   sH   
,8
     !. &<8)wm 