File: //opt/alt/python311/lib64/python3.11/html/__pycache__/parser.cpython-311.opt-1.pyc
�
�0�irQ � �V � d Z ddlZddlZddlmZ dgZ ej d� � Z ej d� � Z ej d� � Z ej d� � Z
ej d � � Z ej d
� � Z ej d� � Z
ej d� � Z ej d
� � Z ej d� � Z ej dej � � Z ej dej � � Z ej dej � � Z ej d� � Z ej d� � Z G d� dej � � ZdS )zA parser for HTML and XHTML.� N)�unescape�
HTMLParserz[&<]z
&[a-zA-Z#]z%&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]z)&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]z <[a-zA-Z]z
</[a-zA-Z]�>z--!?>z-?>z0([a-zA-Z][^\t\n\r\f />]*)(?:[\t\n\r\f ]|/(?!>))*a{
(
(?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]* # attribute name
)
([\t\n\r\f ]*=[\t\n\r\f ]* # value indicator
('[^']*' # LITA-enclosed value
|"[^"]*" # LIT-enclosed value
|(?!['"])[^>\t\n\r\f ]* # bare value
)
)?
(?:[\t\n\r\f ]|/(?!>))* # possibly followed by a space
a
[a-zA-Z][^\t\n\r\f />]* # tag name
[\t\n\r\f /]* # optional whitespace before attribute name
(?:(?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]* # attribute name
(?:[\t\n\r\f ]*=[\t\n\r\f ]* # value indicator
(?:'[^']*' # LITA-enclosed value
|"[^"]*" # LIT-enclosed value
|(?!['"])[^>\t\n\r\f ]* # bare value
)
)?
[\t\n\r\f /]* # possibly followed by a space
)*
>?
aF
<[a-zA-Z][^\t\n\r\f />\x00]* # tag name
(?:[\s/]* # optional whitespace before attribute name
(?:(?<=['"\s/])[^\s/>][^\s/=>]* # attribute name
(?:\s*=+\s* # value indicator
(?:'[^']*' # LITA-enclosed value
|"[^"]*" # LIT-enclosed value
|(?!['"])[^>\s]* # bare value
)
\s* # possibly followed by a space
)?(?:\s|/(?!>))*
)*
)?
\s* # trailing whitespace
z#</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>c �� � e Zd ZdZdZdZddd�d�Zd� Zd � Zd
� Z dZ
d� Zdd
�d�Zd� Z
d$d�Zd� Zd� Zd$d�Zd%d�Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd � Zd!� Zd"� Zd#� Z dS )&r aE Find tags and other markup and call handler functions.
Usage:
p = HTMLParser()
p.feed(data)
...
p.close()
Start tags are handled by calling self.handle_starttag() or
self.handle_startendtag(); end tags by self.handle_endtag(). The
data between tags is passed from the parser to the derived class
by calling self.handle_data() with the data as argument (the data
may be split up in arbitrary chunks). If convert_charrefs is
True the character references are converted automatically to the
corresponding Unicode character (and self.handle_data() is no
longer split in chunks), otherwise they are passed by calling
self.handle_entityref() or self.handle_charref() with the string
containing respectively the named or numeric reference as the
argument.
)�script�style�xmp�iframe�noembed�noframes)�textarea�titleTF)�convert_charrefs� scriptingc �J � || _ || _ | � � � dS )az Initialize and reset this instance.
If convert_charrefs is true (the default), all character references
are automatically converted to the corresponding Unicode characters.
If *scripting* is false (the default), the content of the
``noscript`` element is parsed normally; if it's true,
it's returned as is without being parsed.
N)r r �reset)�selfr r s �2/opt/alt/python311/lib64/python3.11/html/parser.py�__init__zHTMLParser.__init__v s$ � � !1���"����
�
������ c � � d| _ d| _ t | _ d| _ d| _ d| _ t j � | � � dS )z1Reset this instance. Loses all unprocessed data.� z???NT)
�rawdata�lasttag�interesting_normal�interesting�
cdata_elem�_support_cdata�
_escapable�_markupbase�
ParserBaser �r s r r zHTMLParser.reset� sK � �������-������"��������$�$�T�*�*�*�*�*r c �N � | j |z | _ | � d� � dS )z�Feed data to the parser.
Call this as often as you want, with as little or as much text
as you want (may include '\n').
r N)r �goahead�r �datas r �feedzHTMLParser.feed� s% � � �|�d�*������Q�����r c �0 � | � d� � dS )zHandle any buffered data.� N)r$ r"