o
    ‡ÎÖa]M  ã                   @   s  d Z ddlZddl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 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 dd	l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%e%Z&dS )zÕ
    pygments.lexers.html
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for HTML, XML and related markup.

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚExtendedRegexLexerÚincludeÚbygroupsÚdefaultÚusing)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚPunctuation)Úlooks_like_xmlÚhtml_doctype_matches)ÚJavascriptLexer)Ú
ScalaLexer)ÚCssLexerÚ_indentationÚ_starts_block)Ú	RubyLexer)Ú	HtmlLexerÚDtdLexerÚXmlLexerÚ	XsltLexerÚ	HamlLexerÚ
ScamlLexerÚPugLexerc                   @   sŽ  e Zd ZdZdZdgZg d¢ZddgZej	ej
B Zde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ejeƒdfdeeeejeƒdfdeeeejƒdfdeeeeeejeeƒfg
defdeejeeƒdfdejfdeeeeƒdfgdeeeeeejeeƒdfdeeƒfdeeƒdfdeeƒdfgdeeeeeejeeƒdfdeeƒfdeeƒdfdeeƒdfgd edfd!edfd"edfgd#œZd$d%„ Zd&S )'r   zo
    For HTML 4 and XHTML 1 markup. Nested JavaScript and CSS is highlighted
    by the appropriate lexer.
    ÚHTMLÚhtml)z*.htmlz*.htmz*.xhtmlú*.xsltz	text/htmlzapplication/xhtml+xmlú[^<&]+ú&\S*?;ú\<\!\[CDATA\[.*?\]\]\>ú<!--(.|\n)*?-->ú	<\?.*?\?>ú<![^>]*>z(<)(\s*)(script)(\s*))úscript-contentÚtagz(<)(\s*)(style)(\s*))ústyle-contentr(   z(<)(\s*)([\w:.-]+)r(   z"(<)(\s*)(/)(\s*)([\w:.-]+)(\s*)(>)ú\s+z([\w:-]+\s*)(=)(\s*)Úattrú[\w:-]+z(/?)(\s*)(>)ú#popz (<)(\s*)(/)(\s*)(script)(\s*)(>)z.+?(?=<\s*/\s*script\s*>)z.+?\nz.+z(<)(\s*)(/)(\s*)(style)(\s*)(>)z.+?(?=<\s*/\s*style\s*>)ú".*?"ú'.*?'ú[^\s>]+)Úrootr(   r'   r)   r+   c                 C   ó   t | ƒrdS d S )Ng      à?)r   ©Útext© r5   ú6/usr/lib/python3/dist-packages/pygments/lexers/html.pyÚanalyse_textd   ó   ÿzHtmlLexer.analyse_textN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚreÚ
IGNORECASEÚDOTALLÚflagsr   r   ÚEntityr	   ÚPreprocÚ	Multiliner   r   ÚTagÚ	Attributer
   r   r   r   r   Útokensr7   r5   r5   r5   r6   r      s~    þþÿÿÿïÿûÿþ
öÿþ
öýË<r   c                   @   s”  e Zd ZdZejejB ZdZdgZ	dgZ
dgZedƒdeeeejƒdfd	eeeejƒd
fdeeeejƒdfdeeeejƒdfdeeejeeƒfdeeeejƒfdejfdefg	defdejfdedfdefdejfdejfgdefdedfdefgedƒdejfdejfd edfgedƒd!ejfd"ejfd#ejfdejfd edfgedƒd$ejfdejfd edfgedƒd%ejfdejfd edfgd&œZd'd(„ Zd)S )*r   zR
    A lexer for DTDs (Document Type Definitions).

    .. versionadded:: 1.5
    ÚDTDÚdtdz*.dtdzapplication/xml-dtdÚcommonz(<!ELEMENT)(\s+)(\S+)Úelementz(<!ATTLIST)(\s+)(\S+)Úattlistz(<!ENTITY)(\s+)(\S+)Úentityz(<!NOTATION)(\s+)(\S+)Únotationz(<!\[)([^\[\s]+)(\s*)(\[)z(<!DOCTYPE)(\s+)([^>\s]+)zPUBLIC|SYSTEMz[\[\]>]r*   z(%|&)[^;]*;z<!--Úcommentz	[(|)*,?+]z"[^"]*"z
\'[^\']*\'z[^-]+z-->r-   ú-zEMPTY|ANY|#PCDATAz[^>\s|()?+*,]+ú>z?CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATIONz#REQUIRED|#IMPLIED|#FIXEDzxml:space|xml:langzSYSTEM|PUBLIC|NDATAzSYSTEM|PUBLIC)r1   rM   rR   rN   rO   rP   rQ   c                 C   s,   t | ƒsd| v sd| v sd| v rdS d S d S )Nz	<!ELEMENTz	<!ATTLISTz<!ENTITYçš™™™™™é?©r   r3   r5   r5   r6   r7   »   s
   þzDtdLexer.analyse_textN)r9   r:   r;   r<   rA   Ú	MULTILINErC   rD   r=   r>   r?   r@   r   r   r   r   r   rH   rE   ÚConstantr	   r
   r   ÚDoubleÚSingleÚReservedrI   rJ   r7   r5   r5   r5   r6   r   i   s„    ÿÿÿÿÿÿïú
ýüÿùüüÄDr   c                	   @   sÈ   e Zd ZdZejejB ejB ZdZ	dgZ
g d¢Zg d¢Zd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dfdejfgdefdejdfdejdfgdefdedfdedfdedfgdœZdd„ ZdS )r   z=
    Generic lexer for XML (eXtensible Markup Language).
    ÚXMLÚxml)z*.xmlú*.xslz*.rssr    z*.xsdz*.wsdlz*.wsf)ztext/xmlzapplication/xmlzimage/svg+xmlzapplication/rss+xmlzapplication/atom+xmlr!   r"   r#   r$   r%   r&   z<\s*[\w:.-]+r(   z<\s*/\s*[\w:.-]+\s*>r*   z[\w.:-]+\s*=r+   z/?\s*>r-   r.   r/   r0   )r1   r(   r+   c                 C   r2   )NgÍÌÌÌÌÌÜ?rV   r3   r5   r5   r6   r7   ç   r8   zXmlLexer.analyse_textN)r9   r:   r;   r<   rA   rW   rC   ÚUNICODErD   r=   r>   r?   r@   r   r   rE   r	   rF   rG   rH   rI   r   rJ   r7   r5   r5   r5   r6   r   Á   s6    
ø

ýüðr   c                   @   sB   e Zd ZdZdZdgZg d¢ZddgZh d£Zdd	„ Z	d
d„ Z
dS )r   z7
    A lexer for XSLT.

    .. versionadded:: 0.10
    ÚXSLTÚxslt)r^   r    z*.xplzapplication/xsl+xmlzapplication/xslt+xml>#   úcopy-ofúfor-eachúvalue-ofú
with-paramústrip-spaceúapply-importsúattribute-setúcall-templateúdecimal-formatúpreserve-spaceúapply-templatesúnamespace-aliasúprocessing-instructionÚifÚkeyÚcopyÚsortr4   ÚwhenÚparamÚchooseÚimportÚnumberÚoutputrR   rN   r   ÚmessageÚfallbackÚtemplateÚvariableÚ	attributeÚ	otherwiseÚ	transformÚ
stylesheetc                 c   sb   � t  | |¡D ]'\}}}t d|¡}|tju r(|r(| d¡| jv r(|t|fV  q|||fV  qd S )Nz</?xsl:([^>]*)/?>?é   )	r   Úget_tokens_unprocessedrA   Úmatchr   rH   ÚgroupÚEXTRA_KEYWORDSr   )Úselfr4   ÚindexÚtokenÚvalueÚmr5   r5   r6   r‚     s   €úz XsltLexer.get_tokens_unprocessedc                 C   s   t | ƒr
d| v rdS d S d S )Nz<xslrU   rV   r3   r5   r5   r6   r7     s   ÿzXsltLexer.analyse_textN)r9   r:   r;   r<   r=   r>   r?   r@   r…   r‚   r7   r5   r5   r5   r6   r   ì   s    	r   c                   @   sh  e Zd ZdZdZdgZdgZdgZej	Z
dZde d Zd	efd
efgdejdfdejdfgdedfde d eeeeƒƒdfedƒgedƒdejdfde d ejdfde d e d eeejeƒdfde d eedƒdfde d eejdƒdfde d eeeeƒƒdfde d eejd ƒdfed!ƒg	edƒd"e d# eeƒfd$e d% eeƒfd&ed'fd(ed)fd*efed!ƒgd+efd,e d- eej eeƒej ƒfd.edfgd/efd0ej!d1fd2ej!fd3edfgd4efd5ej"dfd6ej"j#dfd7ej"j$dfd8edfd9edfged: efd.edfged: ejfd.edfgd+ejfd,e d- eej eeƒej ƒfd.edfgd;œZ%d<S )=r   z5
    For Haml markup.

    .. versionadded:: 1.3
    ÚHamlÚhamlz*.hamlztext/x-hamlz(?: \|\n(?=.* \|)|.)z
(?:,\s*\n|ú)ú[ \t]*\nú[ \t]*ú	\.[\w:-]+r(   ú	\#[\w:-]+ú[&!]?==Úplainú([&!]?[=~])(ú*\n)r1   Úcssú%[\w:-]+ú!!!ú*\nr-   ú(/)(\[ú*?\])(ú/úhtml-comment-blockú-#úhaml-comment-blockú(-)(ú:úfilter-blockúeval-or-plainú\{(,\n|ú)*?\}ú\[ú*?\]ú\(úhtml-attributesú	/[ \t]*\nú#pop:2ú[<>]{1,2}(?=[ \t=])ú([^#\n]|#[^{\n]|(\\\\)*\\#\{)+ú(#\{)(ú*?)(\})ú\nr*   ú[\w:-]+[ \t]*=úhtml-attribute-valuer,   ú\)ú[ \t]+ú\w+ú@\w+ú\$\w+ú'(\\\\|\\[^\\]|[^'\\\n])*'ú"(\\\\|\\[^\\]|[^"\\\n])*"ú+)r1   r–   r£   Úcontentr(   r“   r©   r²   r�   rŸ   r¢   N)&r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rD   Ú_dotÚ
_comma_dotr   r   r   ÚClassÚFunctionr   r   r   r   r   r   rH   Ú	Namespacer	   ÚSpecialr   rF   Ú	Decoratorr   ÚInterpolrI   ÚVariableÚInstanceÚGlobalrJ   r5   r5   r5   r6   r     sª    þ

þ
þû	
þÿÿÿ
þÿðù
ÿü
ü
ú

þþ
ÿü
¯r   c                   @   sx  e Zd ZdZdZdgZdgZdgZej	Z
dZdefdefgd	ejd
fdejd
fgdedfde d eeeeƒƒdfedƒgedƒdejd
fde d ejdfde d e d eeejeƒdfde d eedƒdfde d eejdƒdfde d eeeeeƒƒdfde d eeeeƒƒdfde d eejdƒdfed ƒg
edƒd!e d" eeƒfd#e d$ eeƒfd%ed&fd'ed(fd)efed ƒgd*efd+e d, eej eeƒej ƒfd-edfgd.efd/ej!d0fd1ej!fd2edfgd3efd4ej"dfd5ej"j#dfd6ej"j$dfd7edfd8edfged9 efd-edfged9 ejfd-edfgd*ejfd+e d, eej eeƒej ƒfd-edfgd:œZ%d;S )<r   zt
    For `Scaml markup <http://scalate.fusesource.org/>`_.  Scaml is Haml for Scala.

    .. versionadded:: 1.4
    ÚScamlÚscamlz*.scamlztext/x-scamlÚ.rŽ   r�   r�   r(   r‘   r’   r“   r”   r•   r1   r–   r—   r˜   r™   r-   rš   r›   rœ   r�   rž   úscaml-comment-blockú(-@\s*)(import)?(r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r*   r±   r²   r,   r³   r´   rµ   r¶   r·   r¸   r¹   rº   ©r1   r–   r£   r»   r(   r“   r©   r²   r�   rÊ   r¢   N)&r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rD   r¼   r   r   r   r¾   r¿   r   r   r   r   r   r   rH   rÀ   r	   rÁ   r   rF   r   rÂ   r   rÃ   rI   rÄ   rÅ   rÆ   rJ   r5   r5   r5   r6   r   €  s°    þ

þ
þû	
þÿÿÿ
þ
þÿíù
ÿü
ü
ú

þþ
ÿü
¬r   c                   @   s€  e Zd ZdZdZddgZddgZddgZej	Z
d	Zd
efdefgdejdfdejdfgdedfde d eeeeƒƒdfedƒgedƒde d ejdfde d e d eeejeƒdfde d eedƒdfde d eejdƒdfde d eeeeeƒƒdfde d eeeeƒƒdfd e d eejd!ƒdfd"ejdfd#ed$fg
edƒd%e d& eeƒfd'e d( eeƒfd)ed*fd+ed,fd-efed$ƒgd.efd/e d0 eej eeƒej ƒfd1edfgd2efd3ej!d4fd"ej!fd5edfgd6efd7ej"dfd8ej"j#dfd9ej"j$dfd:edfd;edfged< efd1edfged< ejfd1edfgd.ejfd/e d0 eej eeƒej ƒfd1edfgd=œZ%d>S )?r   z�
    For Pug markup.
    Pug is a variant of Scaml, see:
    http://scalate.fusesource.org/documentation/scaml-reference.html

    .. versionadded:: 1.4
    ÚPugÚpugÚjadez*.pugz*.jadez
text/x-pugztext/x-jaderÉ   rŽ   r�   r�   r(   r‘   r’   r“   r”   r•   r1   r–   r˜   r™   r-   rš   r›   rœ   r�   rž   rÊ   rË   r    r¡   r¢   r,   z\|r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r*   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   rÌ   N)&r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rD   r¼   r   r   r   r¾   r¿   r   r   r   r   r   r   rÀ   r	   rÁ   r   rF   r   rÂ   rH   r   rÃ   rI   rÄ   rÅ   rÆ   rJ   r5   r5   r5   r6   r   ð  s®    þ

þ
ÿüþÿÿÿ
þ
þÿ
íù
ÿü
ü
ú

þþ
ÿü
­r   )'r<   rA   Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr   r	   r
   r   r   r   r   Úpygments.utilr   r   Úpygments.lexers.javascriptr   Úpygments.lexers.jvmr   Úpygments.lexers.cssr   r   r   Úpygments.lexers.rubyr   Ú__all__r   r   r   r   r   r   r   Ú	JadeLexerr5   r5   r5   r6   Ú<module>   s$    
 $MX+%opk