o
    Zh$O                     @   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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(dS )z
    pygments.lexers.html
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for HTML, XML and related markup.

    :copyright: Copyright 2006-2023 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
Whitespace)looks_like_xmlhtml_doctype_matches)JavascriptLexer)
ScalaLexer)CssLexer_indentation_starts_block)	RubyLexer)	HtmlLexerDtdLexerXmlLexer	XsltLexer	HamlLexer
ScamlLexerPugLexerUrlEncodedLexerc                   @   s  e Zd 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.
    HTMLzhttps://html.spec.whatwg.org/html)z*.htmlz*.htmz*.xhtml*.xsltz	text/htmlzapplication/xhtml+xmlz[^<&]+&\S*?;\<\!\[CDATA\[.*?\]\]\>
<!--.*?-->	<\?.*?\?><![^>]*>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 r6   K/var/www/html/lang_env/lib/python3.10/site-packages/pygments/lexers/html.pyanalyse_texte      zHtmlLexer.analyse_textN)__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesre
IGNORECASEDOTALLflagsr   r   Entityr	   Preproc	Multiliner   r   Tag	Attributer
   r   r   r   r   tokensr8   r6   r6   r6   r7   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)r2   rO   rT   rP   rQ   rR   rS   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   r4   r6   r6   r7   r8      s
   zDtdLexer.analyse_textN)r:   r;   r<   r=   rC   	MULTILINErE   rF   r>   r@   rA   rB   r   r   r   r   r   rJ   rG   Constantr	   r
   r   DoubleSingleReservedrK   rL   r8   r6   r6   r6   r7   r   j   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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[^<&\s]+z[^<&\S]+r#   r$   r%   r&   r'   z<\s*[\w:.-]+r)   z<\s*/\s*[\w:.-]+\s*>r+   z[\w.:-]+\s*=r,   z/?\s*>r.   r/   r0   r1   )r2   r)   r,   c                 C   r3   )Ng?rX   r4   r6   r6   r7   r8      r9   zXmlLexer.analyse_textN)r:   r;   r<   r=   rC   rY   rE   rF   r>   r@   rA   rB   r   r   r   rG   r	   rH   rI   rJ   rK   r   rL   r8   r6   r6   r6   r7   r      s8    


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>#   keynumberr5   templateparamzapply-templateszdecimal-formatzcopy-offallback	attributeifmessagezapply-importszstrip-spacecopy	transformzcall-templaterT   znamespace-aliasrP   importvariablezpreserve-spacez
with-paramzattribute-setzvalue-ofr   Z	otherwisewhensortZchoose
stylesheetoutputzfor-eachzprocessing-instructionc                 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_unprocessedrC   matchr   rJ   groupEXTRA_KEYWORDSr   )selfr5   indextokenvaluemr6   r6   r7   rt     s   z XsltLexer.get_tokens_unprocessedc                 C   s   t | r
d| v rdS d S d S )Nz<xslrW   rX   r4   r6   r6   r7   r8     s   zXsltLexer.analyse_textN)r:   r;   r<   r=   r>   r@   rA   rB   rw   rt   r8   r6   r6   r6   r7   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)r2   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])*"+)r2   r   r   contentr)   r   r   r   r   r   r   N)&r:   r;   r<   r=   r>   r@   rA   rB   rC   rD   rF   _dotZ
_comma_dotr   r   r   ClassFunctionr   r   r   r   r   r   rJ   	Namespacer	   Specialr   rH   	Decoratorr   InterpolrK   VariableInstanceGlobalrL   r6   r6   r6   r7   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   r2   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   r2   r   r   r   r)   r   r   r   r   r   r   N)&r:   r;   r<   r=   r>   r@   rA   rB   rC   rD   rF   r   r   r   r   r   r   r   r   r   r   r   r   rJ   r   r	   r   r   rH   r   r   r   r   rK   r   r   r   rL   r6   r6   r6   r7   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   r2   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)&r:   r;   r<   r=   r>   r@   rA   rB   rC   rD   rF   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   rH   r   r   rJ   r   r   rK   r   r   r   rL   r6   r6   r6   r7   r     s    












r   c                   @   s:   e Zd ZdZdZdgZdgZddeej	e
eefgiZdS )r   z?
    Lexer for urlencoded data

    .. versionadded:: 2.16
    
urlencodedz!application/x-www-form-urlencodedr2   z([^&=]*)(=)([^=&]*)(&?)N)r:   r;   r<   r=   r>   r@   rB   r   r   rJ   r
   r   r   rL   r6   r6   r6   r7   r   `  s    r   ))r=   rC   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   Zpygments.utilr   r   Zpygments.lexers.javascriptr   Zpygments.lexers.jvmr   Zpygments.lexers.cssr   r   r   Zpygments.lexers.rubyr   __all__r   r   r   r   r   r   r   Z	JadeLexerr   r6   r6   r6   r7   <module>   s&    
 (NX,%opk