File: //lib/python3/dist-packages/pygments/lexers/__pycache__/html.cpython-311.pyc
�
�E�c�M � �r � d Z ddlZddlmZmZmZmZmZmZ ddl m
Z
mZmZm
Z
mZmZmZmZ ddlmZmZ ddlmZ ddlmZ ddlmZmZmZ dd lmZ g d
�Z G d� de� � Z G d
� de� � Z! G d� de� � Z" G d� de"� � Z# G d� de� � Z$ G d� de� � Z% G d� de� � Z&e&Z'dS )z�
pygments.lexers.html
~~~~~~~~~~~~~~~~~~~~
Lexers for HTML, XML and related markup.
:copyright: Copyright 2006-2022 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�PugLexerc �� � e Zd ZdZdZdZdgZg d�ZddgZe j
e j z Zde
fd ej fd
ej fdej fdej fd
ej fd eee
ej e
� � dfd eee
ej e
� � dfd eee
ej � � dfd eee
ee
ej e
e� � fg
de
fd eej ee
� � dfdej fd eee
e� � dfgd eee
ee
ej e
e� � dfd ee� � fd ee� � dfd ee� � dfgd eee
ee
ej e
e� � dfd ee� � fd ee� � dfd ee� � dfgd!edfd"edfd#edfgd$�Zd%� Zd&S )'r zo
For HTML 4 and XHTML 1 markup. Nested JavaScript and CSS is highlighted
by the appropriate lexer.
�HTMLzhttps://html.spec.whatwg.org/�html)z*.htmlz*.htmz*.xhtml�*.xsltz text/htmlzapplication/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 �( � t | � � rdS d S )Ng �?)r ��texts �6/usr/lib/python3/dist-packages/pygments/lexers/html.py�analyse_textzHtmlLexer.analyse_texte s! � ���%�%� ��3� � � N)�__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 � r9 r7 r r s� � � � � � �� �
�D�
)�C��h�G�8�8�8�I��5�6�I��M�B�I�%�E� �t��
���$�
&���8�
�G�-�.�
�7�?�+�
���)�
%�
�X�k�4���4�
8�
8�
&�
(� %�
�X�k�4���4�
8�
8�
%�
'�
#�
�X�k�4���
2�
2�E�
;�
2�
�X�k�4��d�D�H�d�!�#� #�
$�#
�, �T�N�
$�h�h�t�~�x��&N�&N�
�
�
���(�
�h�h�{�D�+�F�F��O�
� 1�
�X�k�4��d�D�H�d�!�#� #�$*�
,� *�5�5��+A�+A�B�
�u�u�_�-�-�v�6�
�E�E�/�*�*�F�3�
� 0�
�X�k�4��d�D�H�d�!�#� #�#)�
+� )�%�%��/�/�:�
�u�u�X����/�
�E�E�(�O�O�V�,�
� �f�f�%�
�f�f�%�
���(�
�k:� :�F�x� � � � r9 r c �� � e Zd ZdZej ej z ZdZdgZ dgZ
dgZ ed� � d e
eeej � � dfd e
eeej � � d
fd e
eeej � � dfd
e
eeej � � dfd e
eej ee� � fd e
eeej � � fdej fdefg defdej fdedfdefdej fdej fgdefdedfdefg ed� � dej fdej fd edfg ed� � d!ej fd"ej fd#ej fdej fd edfg ed� � d$ej fdej fd edfg ed� � d%ej fdej fd edfgd&�Zd'� Zd(S ))r zR
A lexer for DTDs (Document Type Definitions).
.. versionadded:: 1.5
�DTD�dtdz*.dtdzapplication/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/ �-zEMPTY|ANY|#PCDATAz[^>\s|()?+*,]+�>z?CDATA|IDREFS|IDREF|ID|NMTOKENS|NMTOKEN|ENTITIES|ENTITY|NOTATIONz#REQUIRED|#IMPLIED|#FIXEDzxml:space|xml:langzSYSTEM|PUBLIC|NDATAz
SYSTEM|PUBLIC)r3 rQ rV rR rS rT rU c �D � t | � � sd| v sd| v sd| v rdS d S d S )Nz <!ELEMENTz <!ATTLISTz<!ENTITY皙�����?�r r5 s r7 r8 zDtdLexer.analyse_text� sF � ��d�#�#� ��4���;�$�#6�#6�*��:L�:L��3� � �:L�:Lr9 N)r: r; r<