o
    RhU                     @   sD  d Z ddlZddl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 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)G dd deZ*G dd de"Z+dS )z
    pygments.lexers.html
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for HTML, XML and related markup.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerExtendedRegexLexerincludebygroupsdefaultusinginheritthis)TextCommentOperatorKeywordNameStringPunctuation
Whitespace)looks_like_xmlhtml_doctype_matches)JavascriptLexer)
ScalaLexer)CssLexer_indentation_starts_block)	RubyLexer)		HtmlLexerDtdLexerXmlLexer	XsltLexer	HamlLexer
ScamlLexerPugLexerVueLexerUrlEncodedLexerc                   @   s  e Zd ZdZdZdZdgZg dZddgZd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.
    HTMLzhttps://html.spec.whatwg.org/html)z*.htmlz*.htmz*.xhtml*.xsltz	text/htmlzapplication/xhtml+xml z[^<&]+&\S*?;\<\!\[CDATA\[.*?\]\]\>
<!--.*?-->	<\?.*?\?><![^>]*>z(<)(\s*)(script)(\s*))script-contenttagz(<)(\s*)(style)(\s*))style-contentr-   z(<)(\s*)([\w:.-]+)r-   z"(<)(\s*)(/)(\s*)([\w:.-]+)(\s*)(>)\s+([\w:-]+\s*)(=)(\s*)attr[\w:-]+(/?)(\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.   r1   c                 C      t | rdS d S )Ng      ?)r   text r<   V/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/pygments/lexers/html.pyanalyse_textf      zHtmlLexer.analyse_textN)__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesversion_addedre
IGNORECASEDOTALLflagsr
   r   Entityr   Preproc	Multiliner   r   Tag	Attributer   r   r   r   r   tokensr>   r<   r<   r<   r=   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dZd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   z7
    A lexer for DTDs (Document Type Definitions).
    DTDdtdz*.dtdzapplication/xml-dtdz6https://en.wikipedia.org/wiki/Document_type_definitionz1.5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-->r4   -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)r8   rV   r[   rW   rX   rY   rZ   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   r:   r<   r<   r=   r>      s
   zDtdLexer.analyse_textN)r@   rA   rB   rC   rJ   	MULTILINErL   rM   rD   rF   rG   rH   rE   rI   r   r   r   r
   r   rQ   rN   Constantr   r   r   DoubleSingleReservedrR   rS   r>   r<   r<   r<   r=   r   k   s    
Dr   c                
   @   s   e Zd ZdZejejB ZdZdgZ	g dZ
g dZdZdZdef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+xmlzhttps://www.w3.org/XMLr&   z[^<&\s]+z[^<&\S]+r'   r(   r)   r*   r+   z<\s*[\w:.-]+r-   z<\s*/\s*[\w:.-]+\s*>r/   z[\w.:-]+\s*=r1   z/?\s*>r4   r5   r6   r7   )r8   r-   r1   c                 C   r9   )Ng?r_   r:   r<   r<   r=   r>      r?   zXmlLexer.analyse_textN)r@   rA   rB   rC   rJ   r`   rL   rM   rD   rF   rG   rH   rE   rI   r
   r   r   rN   r   rO   rP   rQ   rR   r   rS   r>   r<   r<   r<   r=   r      s<    


r   c                   @   sJ   e Zd ZdZdZdgZg dZddgZdZdZ	h d	Z
d
d Zdd ZdS )r   z
    A lexer for XSLT.
    XSLTxslt)rg   r%   z*.xplzapplication/xsl+xmlzapplication/xslt+xmlzhttps://www.w3.org/TR/xslt-30z0.10>#   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sortr;   whenparamchooseimportnumberoutputr[   rW   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_unprocessedrJ   matchr   rQ   groupEXTRA_KEYWORDSr   )selfr;   indextokenvaluemr<   r<   r=   r     s   z XsltLexer.get_tokens_unprocessedc                 C   s   t | r
d| v rdS d S d S )Nz<xslr^   r_   r:   r<   r<   r=   r>     s   zXsltLexer.analyse_textN)r@   rA   rB   rC   rD   rF   rG   rH   rE   rI   r   r   r>   r<   r<   r<   r=   r      s    	r   c                   @   sp  e Zd ZdZdZdgZdgZdgZdZd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d0edfgd1efd2ej#d3fd4e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d0edfged< ejfd0edfgd-ej fd.e d/ ee!j"eee!j"fd0edfgd=Z'd>S )?r   z
    For Haml markup.
    Hamlhamlz*.hamlztext/x-hamlzhttps://haml.infoz1.3z(?: \|\n(?=.* \|)|.)z
(?:,\s*\n|)[ \t]*\n[ \t]*	\.[\w:-]+r-   	\#[\w:-]+[&!]?==plain([&!]?[=~])(*\n)r8   css%[\w:-]+!!!*\nr4   (/)(\[*?\])(/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-valuer2   \)[ \t]+\w+@\w+\$\w+'(\\\\|\\[^\\]|[^'\\\n])*'"(\\\\|\\[^\\]|[^"\\\n])*"+)r8   r   r   contentr-   r   r   r   r   r   r   N)(r@   rA   rB   rC   rD   rF   rG   rH   rE   rI   rJ   rK   rM   _dot
_comma_dotr
   r   r   ClassFunctionr   r   r   r   r   r   rQ   	Namespacer   Specialr   rO   	Decoratorr   InterpolrR   VariableInstanceGlobalrS   r<   r<   r<   r=   r     s    


	








r   c                   @   s  e Zd ZdZdZdgZdgZdgZdZd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d0efd1ej#d2fd3ej#fd4edfgd5efd6ej$dfd7ej$j%dfd8ej$j&dfd9e!dfd:e!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 Scaml markup.  Scaml is Haml for Scala.
    Scamlscamlz*.scamlztext/x-scamlz"https://scalate.github.io/scalate/1.4.r   r   r   r-   r   r   r   r   r   r8   r   r   r   r   r4   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   r2   r   r   r   r   r   r   r   r   r8   r   r   r   r-   r   r   r   r   r   r   N)(r@   rA   rB   rC   rD   rF   rG   rH   rE   rI   rJ   rK   rM   r   r
   r   r   r   r   r   r   r   r   r   r   rQ   r   r   r   r   rO   r   r   r   r   rR   r   r   r   rS   r<   r<   r<   r=   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d	Zd
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d0efd1e d2 ee!j"eee!j"fd3edfgd4efd5ej#d6fd$ej#fd7edfgd8efd9ej$dfd:ej$j%dfd;ej$j&dfd<e!dfd=e!dfged> efd3edfged> ejfd3edfgd0ejfd1e d2 ee!j"eee!j"fd3edfgd?Z'd@S )Ar    z
    For Pug markup.
    Pug is a variant of Scaml, see:
    http://scalate.fusesource.org/documentation/scaml-reference.html
    Pugpugjadez*.pugz*.jadez
text/x-pugztext/x-jadezhttps://pugjs.orgr   r   r   r   r   r-   r   r   r   r   r   r8   r   r   r   r4   r   r   r   r   r   r   r   r   r   r   r2   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)(r@   rA   rB   rC   rD   rF   rG   rH   rE   rI   rJ   rK   rM   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rO   r   r   rQ   r   r   rR   r   r   r   rS   r<   r<   r<   r=   r      s    












r    c                   @   sB   e Zd ZdZdZdgZdgZdZdZdde	e
jeeefgiZdS )	r"   z#
    Lexer for urlencoded data
    
urlencodedz!application/x-www-form-urlencodedz.https://en.wikipedia.org/wiki/Percent-encodingz2.16r8   z([^&=]*)(=)([^=&]*)(&?)N)r@   rA   rB   rC   rD   rF   rH   rE   rI   r   r   rQ   r   r   r   rS   r<   r<   r<   r=   r"   c  s    r"   c                
   @   s   e Zd ZdZdZdZdgZdgZg ZdZ	e
je
jB Zdeejeeejfdefegd	efd
eeedgdeedfdeejeedfdejfdeeeedfgdejfdefdeejeeejfgdeeeeedfdeedfgdZdS )r!   z(
    For Vue Single-File Component.
    Vuez#https://vuejs.org/api/sfc-spec.htmlvuez*.vuez2.19z(\{\{)(.*?)(\}\})z[^<&{]+r/   z0((?:[@:]|v-)(?:[.\w:-]|\[[^\]]*?\])+\s*)(=)(\s*)rD   )stateattr-directiver0   r1   r2   r3   r4   z[\w-]+z[:@.]z(\[)([^\]]*?)(\])z(["\'])(.*?)(\1)r7   )r8   r-   rD   r   N)r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   r   r   rO   r   r   r
   r   r	   r   r   rR   r   r   rS   r<   r<   r<   r=   r!   u  sP    


r!   ),rC   rJ   pygments.lexerr   r   r   r   r   r   r   r	   pygments.tokenr
   r   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    	JadeLexerr"   r!   r<   r<   r<   r=   <module>   s(    
((OX.%opk