
    f^P                     \   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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(y)z
    pygments.lexers.html
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for HTML, XML and related markup.

    :copyright: Copyright 2006-2024 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                      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y')(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+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                     t        |       ryy )Ng      ?)r   texts    O/var/www/cvtools/html/venv/lib/python3.12/site-packages/pygments/lexers/html.pyanalyse_textzHtmlLexer.analyse_textf   s    % &    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;   r9   r   r      s8   
 D
)ChG8I56IMMMBII%E t$&8G--.7??+)%k448&( %k448%'
 #k42E;2k4dDHHd!#$#
, TN$ht~~x&N(h{D+FO
 1k4dDHHd!#$*, *5+AB
 u_-v6E/*F3
 0k4dDHHd!##)+ )%/:
 uX/E(OV,
 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j2                  fdej4                  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j6                  fd!ej8                  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j8                  fd"edfgd(Zd) Zy*)+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-->r1   -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)r5   rT   rY   rU   rV   rW   rX   c                 6    t        |       sd| v sd| v sd| v ryy y )Nz	<!ELEMENTz	<!ATTLISTz<!ENTITY皙?r   r7   s    r9   r:   zDtdLexer.analyse_text   s.    d#4;$#6*:L ;M $r;   N)r<   r=   r>   r?   rF   	MULTILINErH   rI   r@   rB   rC   rD   rA   rE   r   r   r   r	   r   rM   rJ   Constantr
   r   r   DoubleSingleReservedrN   rO   r:   rP   r;   r9   r   r   k   s`    LL299$EDgG	I&'I
BCM H%$19>%$19>$$4h@&$1:?)$++tW=? *$13w//0!#
* TNT[[)Wi(8$'FMM*
 gGV$'N
 H!7#3#34)7F#	
 HO)7+;+;<"G$4$45/7F#
 H#W%5%56,7F#	
 Hw//0/7F#	
y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y)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*=r/   z/?\s*>r1   r2   r3   r4   )r5   r,   r/   c                     t        |       ryy )Ng?r^   r7   s    r9   r:   zXmlLexer.analyse_text   s    $  r;   N)r<   r=   r>   r?   rF   r_   rH   rI   r@   rB   rC   rD   rA   rE   r	   r   r   rJ   r
   rK   rL   rM   rN   r   rO   r:   rP   r;   r9   r   r      s    LL299$EDgG$I@I
"CM $*%$&8G--.7??+)dhh.$dhh/

 Z dnnf5&)
 Z ff%ff%(	
#F2r;   r   c                   F    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y)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sortr8   whenparamchooseimportnumberoutputrY   rU   r   messagefallbacktemplatevariable	attribute	otherwise	transform
stylesheetc              #      K   t         j                  | |      D ]`  \  }}}t        j                  d|      }|t        j
                  u r+|r)|j                  d      | j                  v r|t        |f Z|||f b y w)Nz</?xsl:([^>]*)/?>?   )	r   get_tokens_unprocessedrF   matchr   rM   groupEXTRA_KEYWORDSr   )selfr8   indextokenvaluems         r9   r   z XsltLexer.get_tokens_unprocessed  sw     #+#B#B4#N 	*E5%-u5A Q1771:9L9L+LWe++UE))	*s   A;A=c                 &    t        |       rd| v ryy y )Nz<xslr]   r^   r7   s    r9   r:   zXsltLexer.analyse_text  s    $FdN %3r;   N)r<   r=   r>   r?   r@   rB   rC   rD   rA   rE   r   r   r:   rP   r;   r9   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j4                  dfdez   dz   ej6                  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!jD                   ee      e!jD                        fd0edfgd1efd2ejF                  d3fd4ejF                  fd5edfgd6efd7ejH                  dfd8ejH                  jJ                  dfd9ejH                  jL                  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!jD                   ee      e!jD                        fd0edfgd=Z'y>)?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)r5   css%[\w:-]+!!!*\nr1   (/)(\[*?\])(/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-valuer0   \)[ \t]+\w+@\w+\$\w+'(\\\\|\\[^\\]|[^'\\\n])*'"(\\\\|\\[^\\]|[^"\\\n])*"+)r5   r   r   contentr,   r   r   r   r   r   r   N)(r<   r=   r>   r?   r@   rB   rC   rD   rA   rE   rF   rG   rI   _dot
_comma_dotr	   r   r   ClassFunctionr   r   r   r   r   r   rM   	Namespacer
   Specialr   rK   	Decoratorr   InterpolrN   VariableInstanceGlobalrO   rP   r;   r9   r   r     s    DhG
II
CMMME #D %+J $%
 4::u-4==%0
 g.z)G3k5#34 G
 EN$((E*d]V#T^^V<	)D07:gw8 D[6!=:N#OT\F"M'//2F%HIOQz!G+k5#34 D[6!=#PO$!
( EN$)5+;<T\G#U9%56D+,;1#[1O$
 /5
*foouY'7IKD&!	
 TN0FG(D&!	
 T]]F+dmm,,f5t}}++V4*FF;*FF;!
 CZ!D&!
 CZ)D&!
 /?
*foouY'7IKD&!	
cWFr;   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j2                  dfdez   dz   ej4                  dfdez   dz   ez   dz    eeej8                  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!jD                   ee      e!jD                        fd/edfgd0efd1ejF                  d2fd3ejF                  fd4edfgd5efd6ejH                  dfd7ejH                  jJ                  dfd8ejH                  jL                  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!jD                   ee      e!jD                        fd/edfgd<Z'y=)>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   r5   r   r   r   r   r1   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   r0   r   r   r   r   r   r   r   r   r5   r   r   r   r,   r   r   r   r   r   r   N)(r<   r=   r>   r?   r@   rB   rC   rD   rA   rE   rF   rG   rI   r   r	   r   r   r   r   r   r   r   r   r   r   rM   r   r
   r   r   rK   r   r   r   r   rN   r   r   r   rO   rP   r;   r9   r   r     s    DiGI I
.CMMME
 D $%
 4::u-4==%0
 g.t#g-k5#45 G
 EN$((E*d]V#T^^V<	)D07:gw8 D[6!=:N#OT\F"M'//2G%IJPR!D(72k7E*,=> t^g%k5#45 D[6!=#PO$'
. EN$)5+<=T\G#U:%67D+,;1#[1O$
 /5
*foouZ'8&//JLD&!	
 TN0FG(D&!	
 T]]F+dmm,,f5t}}++V4*FF;*FF;!
 CZ!D&!
 CZ)D&! 
 /?
*foouZ'8&//JLD&!	
iZFr;   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j2                  dfdez   dz   ez   dz    eeej6                  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!jD                   ee      e!jD                        fd3edfgd4efd5ejF                  d6fd$ejF                  fd7edfgd8efd9ejH                  dfd:ejH                  jJ                  dfd;ejH                  jL                  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!jD                   ee      e!jD                        fd3edfgd?Z'y@)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   r5   r   r   r   r1   r   r   r   r   r   r   r   r   r   r   r0   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@   rB   rC   rD   rA   rE   rF   rG   rI   r   r	   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   rK   r   r   rM   r   r   rN   r   r   r   rO   rP   r;   r9   r   r     s    DfoG(#I}-I
CMMMED $%
 4::u-4==%0
 g.t#g-k5#45@G	
 ENd]V#T^^V<	)D07:gw8 D[6!=:N#OT\F"M'//2G%IJPR!D(72k7E*,=> t^g%k5#45 D[6!=#P5)D/*'
. EN$)5+<=T\G#U:%67D+,;1#[1O$
 /5
*foouZ'8&//JLD&!	
 TN0FG(D&!	
 T]]F+dmm,,f5t}}++V4*FF;*FF;!
 CZ!D&!
 CZ)D&! 
 /?
*foouZ'8&//JLD&!	
gYFr;   r   c                   \    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y)	r    z#
    Lexer for urlencoded data
    
urlencodedz!application/x-www-form-urlencodedz.https://en.wikipedia.org/wiki/Percent-encodingz2.16r5   z([^&=]*)(=)([^=&]*)(&?)N)r<   r=   r>   r?   r@   rB   rD   rA   rE   r   r   rM   r   r   r   rO   rP   r;   r9   r    r    c  sO     DnG45I
:CM 	&8V[(YZ
Fr;   r    ))r?   rF   pygments.lexerr   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    rP   r;   r9   <module>r      s    
    > 6 * E E *8L
 L^Uz Up+z +\" "Jl" l^m# m`j! jV 	j r;   