
    MhU                        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e          Z" G d de          Z# G d de          Z$ G d de$          Z% G d de          Z& G d de          Z' G d de          Z(e(Z) G d de          Z* G 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                      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        z  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& 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.   r0   r3   c                 (    t          |           rdS d S )Ng      ?)r   texts    T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/html.pyanalyse_textzHtmlLexer.analyse_textf   s!    %% 	3	 	    N)__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      s        
 D
)ChG888I56IMMBI%E t$&8G-.7?+)%Xk4488&( %Xk4488%'
 #Xk422E;2Xk4dDHd!# #$#
, TN$hht~x&N&N(hh{D+FFO
 1Xk4dDHd!# #$*, *55+A+AB
 uu_--v6EE/**F3
 0Xk4dDHd!# ##)+ )%%//:
 uuX/EE(OOV,
 ff%ff%(
k: :Fx    r@   r   c                      e Zd ZdZej        ej        z  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) 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[\[\]>]r1   z(%|&)[^;]*;z<!--commentz	[(|)*,?+]z"[^"]*"z
\'[^\']*\'z[^-]+z-->r6   -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)r:   rY   r^   rZ   r[   r\   r]   c                 D    t          |           sd| v sd| v sd| v rdS d S d S )Nz	<!ELEMENTz	<!ATTLISTz<!ENTITY皙?r   r<   s    r>   r?   zDtdLexer.analyse_text   sF    d## 	4;$#6#6*:L:L3	 	:L:Lr@   N)rA   rB   rC   rD   rK   	MULTILINErM   rN   rE   rG   rH   rI   rF   rJ   r   r   r   r   r   rR   rO   Constantr   r   r   DoubleSingleReservedrS   rT   r?   rU   r@   r>   r   r   k   s         L29$EDgG	I&'I
BCM GH%$119>%$119>$$44h@&$11:?)$+tW==? *$113w/0!#
* TNT[)Wi(8$'FM*
 gGV$'N
 GH!7#34)7F#	
 GHO)7+;<"G$45/7F#
 GH#W%56,7F#	
 GHw/0/7F#	
yB BFH    r@   r   c            
       *   e Zd ZdZej        ej        z  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 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*>r1   z[\w.:-]+\s*=r3   z/?\s*>r6   r7   r8   r9   )r:   r/   r3   c                 (    t          |           rdS d S )Ng?rc   r<   s    r>   r?   zXmlLexer.analyse_text   s!    $ 	4	 	r@   N)rA   rB   rC   rD   rK   rd   rM   rN   rE   rG   rH   rI   rF   rJ   r   r   r   rO   r   rP   rQ   rR   rS   r   rT   r?   rU   r@   r>   r   r      s8         L29$EDgG$ $ $I@ @ @I
"CM $*%$&8G-.7?+)dh.$dh/

 Z dnf5&)
 Z ff%ff%(	
# F2    r@   r   c                   H    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
 Zd ZdS )r   z
    A lexer for XSLT.
    XSLTxslt)rl   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^   rZ   r   messagefallbacktemplatevariable	attribute	otherwise	transform
stylesheetc              #      K   t                               | |          D ][\  }}}t          j        d|          }|t          j        u r+|r)|                    d          | j        v r|t          |fV  T|||fV  \d S )Nz</?xsl:([^>]*)/?>?   )	r   get_tokens_unprocessedrK   matchr   rR   groupEXTRA_KEYWORDSr   )selfr=   indextokenvaluems         r>   r   z XsltLexer.get_tokens_unprocessed  s      #+#B#B4#N#N 	* 	*E5%-u55A  Q 1771::9L+L+LWe+++++UE)))))	* 	*r@   c                 4    t          |           rd| v rdS d S d S )Nz<xslrb   rc   r<   s    r>   r?   zXsltLexer.analyse_text  s-    $ 	FdNN3	 	NNr@   N)rA   rB   rC   rD   rE   rG   rH   rI   rF   rJ   r   r   r?   rU   r@   r>   r   r      s{          DhG,,,I&(>?I
)CM	 	 	N* * *    r@   r   c                   \   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z   d
z   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z   dz    ee ee                    df ed          g ed          dej        dfdez   dz   ej        dfdez   dz   ez   dz    eeej        e          dfdez   dz    eed          dfdez   dz    eej        d          dfd ez   dz    ee ee                    dfd!ez   dz    eej         d"          df ed#          g	 ed          d$ez   d%z    ee          fd&ez   d'z    ee          fd(ed)fd*ed+fd,ef ed#          gd-efd.ez   d/z    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<z   efd0edfged<z   ej        fd0edfgd-ej         fd.ez   d/z    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)r:   css%[\w:-]+!!!*\nr6   (/)(\[*?\])(/html-comment-block-#haml-comment-block(-)(:filter-blockeval-or-plain\{(,\n|)*?\}\[*?\]\(html-attributes	/[ \t]*\n#pop:2[<>]{1,2}(?=[ \t=])([^#\n]|#[^{\n]|(\\\\)*\\#\{)+(#\{)(*?)(\})\nr1   [\w:-]+[ \t]*=html-attribute-valuer4   \)[ \t]+\w+@\w+\$\w+'(\\\\|\\[^\\]|[^'\\\n])*'"(\\\\|\\[^\\]|[^"\\\n])*"+)r:   r   r   contentr/   r   r   r   r   r   r   N)(rA   rB   rC   rD   rE   rG   rH   rI   rF   rJ   rK   rL   rN   _dot
_comma_dotr   r   r   ClassFunctionr   r   r   r   r   r   rR   	Namespacer   Specialr   rP   	Decoratorr   InterpolrS   VariableInstanceGlobalrT   rU   r@   r>   r   r     s         DhG
II
CMME #D %+J $%
 4:u-4=%0
 g.z)G3Xk55#3#344 GG
 GENN$(E*d]V#T^V<	)D07:Xgw88 D[6!==:N#O#OT\F"MM'/2F%H %HIOQz!G+Xk55#3#344 D[6!==#P#PGO$$!
( GENN$)55+;+;<T\G#UU9%5%56D+,;1#[1GO$$
 /5
*XfouuY'7'7IIKD&!	
 TN0FG(D&!	
 T]F+dm,f5t}+V4*FF;*FF;!
 CZ!D&!
 CZ)D&!
 /?
*XfouuY'7'7IIKD&!	
cW WFFFr@   r   c                      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z   dz    ee ee                    df ed          g ed          dej        dfdez   dz   ej        dfdez   dz   ez   dz    eeej        e          dfdez   dz    eed          dfdez   dz    eej        d          dfdez   dz    eee ee                    dfdez   dz    ee ee                    dfd ez   dz    eej         d!          df ed"          g
 ed          d#ez   d$z    ee          fd%ez   d&z    ee          fd'ed(fd)ed*fd+ef ed"          gd,efd-ez   d.z    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;z   efd/edfged;z   ej        fd/edfgd,ej         fd-ez   d.z    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   r:   r   r   r   r   r6   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   r1   r   r   r4   r   r   r   r   r   r   r   r   r:   r   r   r   r/   r   r   r   r   r   r   N)(rA   rB   rC   rD   rE   rG   rH   rI   rF   rJ   rK   rL   rN   r   r   r   r   r   r   r   r   r   r   r   r   rR   r   r   r   r   rP   r   r   r   r   rS   r   r   r   rT   rU   r@   r>   r    r      s         DiGI I
.CMME
 D $%
 4:u-4=%0
 g.t#g-Xk55#4#455 GG
 GENN$(E*d]V#T^V<	)D07:Xgw88 D[6!==:N#O#OT\F"MM'/2G%I %IJPR!D(72Xk7EE*,=,=>> t^g%Xk55#4#455 D[6!==#P#PGO$$'
. GENN$)55+<+<=T\G#UU:%6%67D+,;1#[1GO$$
 /5
*XfouuZ'8'8&/JJLD&!	
 TN0FG(D&!	
 T]F+dm,f5t}+V4*FF;*FF;!
 CZ!D&!
 CZ)D&! 
 /?
*XfouuZ'8'8&/JJLD&!	
iZ ZFFFr@   r    c                      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z   dz    ee ee                    df ed          g ed          dez   dz   ej        dfdez   dz   ez   dz    eeej        e          dfdez   dz    eed          dfdez   dz    eej        d          dfd ez   dz    eee ee                    dfd!ez   dz    ee ee                    dfd"ez   dz    eej        d#          dfd$ej         dfd%ed&fg
 ed          d'ez   d(z    ee          fd)ez   d*z    ee          fd+ed,fd-ed.fd/ef ed&          gd0efd1ez   d2z    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>z   efd3edfged>z   ej        fd3edfgd0ej        fd1ez   d2z    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   r:   r   r   r   r6   r   r   r   r   r   r   r   r   r   r   r4   z\|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   r   N)(rA   rB   rC   rD   rE   rG   rH   rI   rF   rJ   rK   rL   rN   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rP   r   r   rR   r   r   rS   r   r   r   rT   rU   r@   r>   r!   r!     s         DfoG(#I}-I
CMMED $%
 4:u-4=%0
 g.t#g-Xk55#4#455@GG	
 GENNd]V#T^V<	)D07:Xgw88 D[6!==:N#O#OT\F"MM'/2G%I %IJPR!D(72Xk7EE*,=,=>> t^g%Xk55#4#455 D[6!==#P#P5)D/*'
. GENN$)55+<+<=T\G#UU:%6%67D+,;1#[1GO$$
 /5
*XfouuZ'8'8&/JJLD&!	
 TN0FG(D&!	
 T]F+dm,f5t}+V4*FF;*FF;!
 CZ!D&!
 CZ)D&! 
 /?
*XfouuZ'8'8&/JJLD&!	
gY YFFFr@   r!   c                   Z    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.16r:   z([^&=]*)(=)([^=&]*)(&?)N)rA   rB   rC   rD   rE   rG   rI   rF   rJ   r   r   rR   r   r   r   rT   rU   r@   r>   r#   r#   c  sc          DnG45I
:CM 	&8V[(Y(YZ
FFFr@   r#   c                      e Zd ZdZdZdZdgZdgZg ZdZ	e
j        e
j        z  Zd eej         ee          ej                  fdefegd	efd
 e eedg          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[^<&{]+r1   z0((?:[@:]|v-)(?:[.\w:-]|\[[^\]]*?\])+\s*)(=)(\s*)rE   )stateattr-directiver2   r3   r4   r5   r6   z[\w-]+z[:@.]z(\[)([^\]]*?)(\])z(["\'])(.*?)(\1)r9   )r:   r/   rE   r   N)rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   r   r   rP   r   r   r   r	   r
   r   r   rS   r   r   rT   rU   r@   r>   r"   r"   u  s         D
/CgG	IIMMBI%E "88GOU?##W_$6 $6 7	
 TN@XeeD1118TBB %hht~x&N&N(hh{D+FFO	
 '{#!88GOU?##W_$6 $6 7
 !((6U?##V#- #-.46//8
/ FFFr@   r"   ),rD   rK   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"   rU   r@   r>   <module>r      s    
			" " " " " " " " " " " " " " " " " " " "                    > > > > > > > > 6 6 6 6 6 6 * * * * * * E E E E E E E E E E * * * * * *D D DL L L L L
 L L L^U U U U Uz U U Up+ + + + +z + + +\" " " " " " " "Jl l l l l" l l l^m m m m m# m m m`j j j j j! j j jV 	    j   $) ) ) ) )y ) ) ) ) )r@   