B
    ë¹`qh  ã               @   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  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ƒ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-2021 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ÚMarkdownLexerÚTiddlyWiki5Lexerc               @   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
    ZBBCodeZbbcodeztext/x-bbcodez[^[]+z\[/?\w+Útagz\[z\s+z(\w+)(=)("?[^\s"\]]+"?)z(=)("?[^\s"\]]+"?)z\]z#pop)Úrootr'   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	mimetypesr   r   r	   r   Ú	Attributer   r   Útokens© r2   r2   ú^/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/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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-wikiZ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\'\[{!_~^,|]+z\nÚ.z\}\}\}z#popz\{\{\{z#pushz[^{}]+)r(   r4   N)r)   r*   r+   r,   r-   r.   Ú	filenamesr/   ÚreÚ	MULTILINEÚ
IGNORECASEÚflagsr   r	   r   r   r   ÚHeadingr
   r   r   r   ÚBuiltinÚ	NamespaceÚPreprocr1   r2   r2   r2   r3   r   >   s2   
c               @   s|  e Zd ZdZdZdddg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d0fd1efgd2œZ'd3d4„ Z(d5d6„ Z)d7S )8r   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
    ZreStructuredTextZrestructuredtextZ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	rìy|| 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}xX|D ]P}	t|	ƒ|krž| t|ƒdt|	d |… fgf¡ ||	|d … 7 }n||	7 }qXW t|| |¡ƒE d H  d S )Nr   )Úget_lexer_by_nameé   é   é   é   é   é   é   é   é	   é
   é   TÚ )Úpygments.lexersr@   Ústartr   Úgroupr   r   ÚWordr   ÚhandlecodeblocksÚstripr   Úlenr   Ú
splitlinesÚappendr   Úget_tokens_unprocessed)
ÚselfÚmatchr@   ÚlexerZ	indentionZindention_sizeÚcodeZinsZ	codelinesÚliner2   r2   r3   Ú_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\\.z``Úliteralz(`.+?)(<.+?>)(`__?)z`.+?`__?z(`.+?`)(:[a-zA-Z0-9:-]+?:)?z(:[a-zA-Z0-9:-]+?:)(`.+?`)z\*\*.+?\*\*z\*.+?\*z\[.*?\]_z<.+?>z[^\\\n\[*`:]+r5   z[^`]+z#popú`)r(   r]   r_   c             K   s    t |ddƒ| _tj| f|Ž d S )NrQ   T)r   rQ   r   Ú__init__)rW   Úoptionsr2   r2   r3   ra     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r‚d
S d S )NrB   z..rC   r5   g333333Ó?Ú
rA   éÿÿÿÿz-=g      à?)Úfind)ÚtextÚp1Úp2r2   r2   r3   Úanalyse_text  s     
zRstLexer.analyse_textN)*r)   r*   r+   r,   r-   r.   r6   r/   r7   r8   r:   r\   ZclosersZunicode_delimitersÚescapeZend_string_suffixr	   r   r;   r   r   r
   r   r   r   rP   r   ÚTagr   r>   ÚClassr   ÚEscaper   ZInterpolÚVariabler0   ÚStrongÚEmphr1   ra   ri   r2   r2   r2   r3   r   k   sŠ   
)c            
   @   s  e Zd ZdZdZddgZdddg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.
    ZTeXZtexZlatexz*.texz*.auxz*.tocz
text/x-texztext/x-latexz%.*?\nz[{}]z[&_^]z\\\[Údisplaymathz\\\(Ú
inlinemathz\$\$z\$z\\([a-zA-Z]+|.)Úcommandz\\$Úgeneralz[^\\$%&_^{}]+z[0-9]+z[-=!+*/()\[\]]z[^=!+*/()\[\]\\$%&_^{}0-9-]+z\\\)z#popÚmathz\\\]z\[.*?\]z\*)rt   r(   ru   rr   rq   rs   c             C   s*   x$dD ]}| d t |ƒ… |krdS qW d S )N)z\documentclassz\inputz\documentstylez\relaxT)rS   )rf   rN   r2   r2   r3   ri   E  s    
zTexLexer.analyse_textN)r)   r*   r+   r,   r-   r.   r6   r/   r   r   r<   r   ÚBacktickr   r   r   rn   r   r   r0   r   r1   ri   r2   r2   r2   r3   r     s@   




c            
   @   sÒ   e Zd ZdZdZdddg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
    ZGroffZgroffZnroffZmanz*.[1234567]z*.manzapplication/x-troffz
text/troffz	(\.)(\w+)Úrequestz\.z[^\\\n]+ÚtextlineÚescapesz\nz#popz	\\"[^\n]*z\\[fn]\wz\\\(.{2}z	\\.\[.*\]z\\.z\\\nz	"[^\n"]+"z\d+z\S+z\s+)r(   rx   ry   rw   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 )
NrA   r5   FrC   z.\"TrD   z.TH gÍÌÌÌÌÌì?)ÚisalnumÚisspace)rf   r2   r2   r3   ri   y  s    zGroffLexer.analyse_textN)r)   r*   r+   r,   r-   r.   r6   r/   r	   r   r   r   r   r   r   r   rm   ÚDoubler   r1   ri   r2   r2   r2   r3   r   L  s2   


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
    Zmozhashpreprocz^#)ÚexprÚ	exprstartz.+z(literal)(.*)z#pop:2)ZdefineZundefÚifZifdefZifndefÚelseÚelifZelifdefZelifndefÚendifÚexpandÚfilterZunfilterr   ZincludesubstÚerrorz#pop)ú!z!=z==z&&z||z(defined)(\()z\)z[0-9]+z__\w+?__z@\w+?@z\w+z\nz\s+z\S)r(   r~   r}   N)r)   r*   r+   r,   r-   r.   r6   r/   r   r>   r   r	   r   r   r   r   r   r   ÚDecimalr   rn   rl   r1   r2   r2   r2   r3   r    „  s*   


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
    Zmozpercentpreprocr(   z^%)r}   r~   z.+N)r)   r*   r+   r,   r-   r.   r6   r/   r   r>   r   r1   r2   r2   r2   r3   r!   ­  s   
c                   s4   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                s   t ƒ jttf|Ž d S )N)Úsuperra   r   r    )rW   rb   )Ú	__class__r2   r3   ra   Î  s    zMozPreprocXulLexer.__init__)
r)   r*   r+   r,   r-   r.   r6   r/   ra   Ú__classcell__r2   r2   )r‰   r3   r"   Â  s   c                   s4   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
    `JavascriptLexer`.

    .. versionadded:: 2.0
    zJavascript+mozpreproczjavascript+mozpreprocz*.js.inc                s   t ƒ jttf|Ž d S )N)rˆ   ra   r   r    )rW   rb   )r‰   r2   r3   ra   Þ  s    z"MozPreprocJavascriptLexer.__init__)
r)   r*   r+   r,   r-   r.   r6   r/   ra   rŠ   r2   r2   )r‰   r3   r#   Ò  s   c                   s4   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
    `CssLexer`.

    .. versionadded:: 2.0
    zCSS+mozpreproczcss+mozpreprocz*.css.inc                s   t ƒ jttf|Ž d S )N)rˆ   ra   r   r!   )rW   rb   )r‰   r2   r3   ra   î  s    zMozPreprocCssLexer.__init__)
r)   r*   r+   r,   r-   r.   r6   r/   ra   rŠ   r2   r2   )r‰   r3   r$   â  s   c               @   s¨  e 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%   zt
    For `Markdown <https://help.github.com/categories/writing-on-github/>`_ markup.

    .. versionadded:: 2.2
    ZMarkdownZmarkdownZ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¡t| d¡fV  d}| jrŽy|| 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 )	zV
        match args: 1:backticks, 2:lang_name, 3:newline, 4:code, 5:backticks
        r   )r@   rA   rB   rC   NrD   rE   )rM   r@   rN   r   rv   rO   r   rQ   rR   r   r   rV   )rW   rX   r@   rY   rZ   r2   r2   r3   Ú_handle_codeblockþ  s    
zMarkdownLexer._handle_codeblockz(^#[^#].+)(\n)z(^#{2,6}[^#].+)(\n)z^(.+)(\n)(=+)(\n)z^(.+)(\n)(-+)(\n)z^(\s*)([*-] )(\[[ xX]\])( .+\n)r]   )r^   z^(\s*)([*-])(\s)(.+\n)z^(\s*)([0-9]+\.)( .+\n)z^(\s*>\s)(.+\n)z^(\s*```\n[\w\W]*?^\s*```$\n)z(^(\s*```)(\w+)(\n)([\w\W]*?)(^\s*```$\n)z\\.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]+r5   )r(   r]   c             K   s    t |ddƒ| _tj| f|Ž d S )NrQ   T)r   rQ   r   ra   )rW   rb   r2   r2   r3   ra   Z  s    zMarkdownLexer.__init__N)!r)   r*   r+   r,   r-   r.   r6   r/   r7   r8   r:   r‹   r	   r   r;   r   Ú
Subheadingr   r
   r   rp   r   rv   r   ro   ÚDeletedr   ÚEntityrk   r0   ZLabelr1   ra   r2   r2   r2   r3   r%   ò  sL   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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d/eej!ƒfd0efd1efgd2œZ"d3d4„ Z#d5S )6r&   zf
    For `TiddlyWiki5 <https://tiddlywiki.com/#TiddlerFiles>`_ markup.

    .. versionadded:: 2.7
    ZtiddlerÚ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rŠy|| 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   )r@   rA   rB   rC   NrD   rE   )rM   r@   rN   r   rO   r   rQ   rR   r   r   rV   )rW   rX   r@   rY   rZ   r2   r2   r3   r‹   k  s     
z"TiddlyWiki5Lexer._handle_codeblockc             c   sÂ   ddl m} | d¡t| d¡fV  | d¡t| d¡fV  d}| jrhy|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   )r@   rA   rB   NÚcssrC   rD   )	rM   r@   rN   r   rO   rQ   r   r   rV   )rW   rX   r@   rY   rZ   r2   r2   r3   Ú_handle_cssblockˆ  s    
z!TiddlyWiki5Lexer._handle_cssblockz^(title)(:\s)(.+\n)z^(!)([^!].+\n)z^(!{2,6})(.+\n)z^(\s*)([*#>]+)(\s*)(.+\n)r]   )r^   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Úsuffixz\\.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`[^`]+`z&\S*?;z(\[{2})([^]\|]+)(\]{2})z$(\[{2})([^]\|]+)(\|)([^]\|]+)(\]{2})z(\{{2})([^}]+)(\}{2})z(\b.?.?tps?://[^\s"]+)z[\w]+r5   )r(   r’   r]   c             K   s    t |ddƒ| _tj| f|Ž d S )NrQ   T)r   rQ   r   ra   )rW   rb   r2   r2   r3   ra   ø  s    zTiddlyWiki5Lexer.__init__N)$r)   r*   r+   r,   r-   r.   r6   r/   r7   r8   r:   r‹   r‘   r	   r   r   r   r;   rŒ   r
   r   r   ro   rp   r   rk   r   r   r   ZIntegerr   rv   ÚRegexr0   r1   ra   r2   r2   r2   r3   r&   _  sj   ).r,   r7   Zpygments.lexers.htmlr   r   Zpygments.lexers.javascriptr   Zpygments.lexers.cssr   Zpygments.lexerr   r   r   r	   r
   r   r   r   r   Zpygments.tokenr   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&   r2   r2   r2   r3   Ú<module>	   s0   ,0

!- (:8)m